CMi*_*cea 14 directx screenshot fullscreen
这令我难以置信.DirectX绕过所有内容并直接与设备驱动程序对话,因此GDI和其他常用方法将无法工作 - 除非Aero被禁用(或不可用),所有出现的内容都是屏幕左上方的黑色矩形.我已经尝试了其他几个论坛上的建议,使用DirectX来获取后台缓冲区并保存它,但我得到了相同的结果:
device-> GetFrontBufferData(0,surface); D3DXSaveSurfaceToFile("fileName",D3DXIFF_BMP,surface,NULL,NULL);
启用Aero时,有没有办法获得另一个全屏DirectX应用程序的屏幕截图?
这是一个C#示例,通过DLL注入和使用EasyHook 挂钩的IDirect3DDevice9对象(如Microsoft Detours).这与FRAPS的工作方式类似.
这允许您以窗口/全屏模式捕获屏幕并使用后台缓冲区,这比尝试从前台缓冲区检索数据要快得多.
一个小的C++帮助器DLL用于确定在运行时挂钩的IDirect3DDevice9对象的方法.
更新:对于DirectX 10/11,请参阅D3D 9,10和11的屏幕截图和叠加
| 归档时间: |
|
| 查看次数: |
31002 次 |
| 最近记录: |