2011-05-02 330 views
2

自从Windows XP以来,我已经知道使用Device Contexts和GDI进行屏幕捕获。现在桌面主要是Direct3D,是否有更好的方法(即DirectX?)?什么是最有效的屏幕截图方式?使用DirectX捕获屏幕?

如何使用DirectX截屏?

我想知道用户模式屏幕捕获最有效的方法。对于需要经常屏幕擦除的技术支持计划。

UPDATE:我不想诉诸使用内核模式驱动程序。

+1

这是一个合理的例子,关于如何做到这一点:http://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20: – vcsjones 2011-05-02 21:11:56

回答

0

我不确定这实际上比您想到的算法快,但一种方法是使用GetRenderTargetData复制您的缓冲区。

GetRenderTargetData

0

另一种方法是使用Spazzarama's应用程序,该应用程序使用DirectX(基于SlimDx)和Easyhook将Capture DLL注入正在运行的应用程序的DirextX管道。