【发布时间】:2012-08-02 09:29:23
【问题描述】:
是否可以像 FRAPS 一样检测哪些应用程序正在使用 OpenGL 或 DirectX? (可能使用某种形式的钩子)?我可能不需要实际绘制到窗口,我只需要知道哪些进程正在执行某种形式的 3D 渲染。
(编辑:) 如果您不熟悉它,FRAPS 是一个可用于在 3D 应用程序上绘制“每秒帧数”计数器的程序。 FRAPS 会自行查找所有正在运行的 3D 应用程序,而无需您指定进程名称。
外部游戏绘制的“每秒帧数”计数器示例:
【问题讨论】:
-
我的猜测是,您正在寻找的功能隐藏在 Microsoft 的 Windows API 中。我会在那里寻找解决方案。
-
你可以看看taksi.sourceforge.net。它是 FRAPS 的开源替代品。最重要的是您可以查看资源并找到您需要的内容。
-
请注意,并非所有使用 DirectX/Direct3d 的应用程序都在进行 3D 渲染。我们使用 D3D 来渲染 H.264 视频。
-
我认为这对 dx 有帮助 ...Hooking DirectX EndScene from an injected DLL
-
@Deanna +1 感谢 Deanna 的警告,还有其他需要注意的地方。
标签: c# c++ winapi opengl directx