自從Windows XP以來,我已經知道使用Device Contexts和GDI進行屏幕捕獲。現在桌面主要是Direct3D,是否有更好的方法(即DirectX?)?什麼是最有效的屏幕截圖方式?使用DirectX捕獲屏幕?
如何使用DirectX截屏?
我想知道用戶模式屏幕捕獲最有效的方法。對於需要經常屏幕擦除的技術支持計劃。
UPDATE:我不想訴諸使用內核模式驅動程序。
自從Windows XP以來,我已經知道使用Device Contexts和GDI進行屏幕捕獲。現在桌面主要是Direct3D,是否有更好的方法(即DirectX?)?什麼是最有效的屏幕截圖方式?使用DirectX捕獲屏幕?
如何使用DirectX截屏?
我想知道用戶模式屏幕捕獲最有效的方法。對於需要經常屏幕擦除的技術支持計劃。
UPDATE:我不想訴諸使用內核模式驅動程序。
基於vcsjones回答(上文)。查看CodeProject http://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20
我不確定這實際上比您想到的算法快,但一種方法是使用GetRenderTargetData複製您的緩衝區。
另一種方法是使用Spazzarama's應用程序,該應用程序使用DirectX(基於SlimDx)和Easyhook將Capture DLL注入正在運行的應用程序的DirextX管道。
這是一個合理的例子,關於如何做到這一點:http://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20: – vcsjones 2011-05-02 21:11:56