Windows XP以降、デバイスコンテキストとGDIを使用した画面キャプチャについて知っていました。デスクトップがほとんどDirect3Dである今、より良い方法(つまり、DirectX?)はありますか?
DirectXを使用してスクリーンキャプチャするにはどうすればよいですか?
ユーザーモードのスクリーンキャプチャの最も効率的な方法を知りたいです。頻繁な画面の擦り傷を必要とするテクニカルサポートプログラムの場合。
更新:カーネルモードドライバーの使用に頼りたくありません。
Windows XP以降、デバイスコンテキストとGDIを使用した画面キャプチャについて知っていました。デスクトップがほとんどDirect3Dである今、より良い方法(つまり、DirectX?)はありますか?
DirectXを使用してスクリーンキャプチャするにはどうすればよいですか?
ユーザーモードのスクリーンキャプチャの最も効率的な方法を知りたいです。頻繁な画面の擦り傷を必要とするテクニカルサポートプログラムの場合。
更新:カーネルモードドライバーの使用に頼りたくありません。
これが実際にあなたが考えているアルゴリズムよりも速いかどうかはわかりませんが、それを行う1つの方法は、GetRenderTargetDataを使用してバッファーをコピーすることです。
vcsjonesの回答(上記)に基づいています。CodeProjecthttp ://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20を参照してください
別の方法は、DirectX(SlimDxに基づく)とEasyhookを使用してキャプチャdllを実行中のアプリケーションのDirextXパイプラインに挿入するSpazzaramaのアプリケーションを使用することです。