我正在尝试捕获一个或多个特定窗口以创建一个覆盖层,以使用openvr_api发送到虚拟现实眼镜。
问题是我在所有 Google 中都找不到任何可以让我了解在 C# 中执行此操作的最佳方法的内容。
我是 javascript、php、python 方面的专家,通常一切都集中在网络上,我知道如何用 C# 编写,但我不太了解如何创建此类应用程序的机制。
这个想法是创建一个可执行文件,它正在寻找我开发的特定应用程序的窗口(窗口是透明的,并且它们的内容以 10fps 的速率刷新),当其中一个窗口存在时,在叠加层中显示其内容在虚拟现实中。
到目前为止,我有一个搜索和查找窗口的类,并且我从它们中获得了与每个窗口相关联的IntPtr 。
所以openvr_api允许我:
- SetOverlayTexture : ID3D11Texture 或 GLuint (openGl)
- SetOverlayRaw : 不推荐
- SetOverlayFromFile:图像
我的问题是,我该怎么办?
- 每 100 毫秒创建一次图像,保存它们并通过 setOverlayFromFile 发送它们。
- 每 100 毫秒使用 OpenTK 创建纹理并通过 setOverlayTexture 发送它们。
捕获窗口的最佳方法是什么?我见过一个类似的应用程序,当它捕获窗口时,它周围出现一个黄色框架,它是一个非常小的应用程序,仅使用glew32.dll和openvr_api.dll,可能是用 C++ 编写的,所以我推断它捕获窗口的方式与我在这里公开的方式不同。
任何指导知道去哪里?