• 締切済み

DirectXを使用したゲームのキャプチャについて

C#.net2003を使用しています。 とあるDirect3Dを使用したアプリケーションのスクリーンをキャプチャしようとしたところ、そのウィンドウ領域が黒く塗りつぶされてしまいます。 (http://homepage3.nifty.com/midori_no_bike/CS/graphics.html#267 の、一番下のサンプルを使用しました) 戻ってきた数値を見ると、A.R.G.Bともに0でした。 しかし、このウィンドウをPrintScreenキーでクリップボードにキャプチャした場合は、きちんとキャプチャされています。 そこで別のDirect3D使用ゲームをキャプチャしてみたところ、そのゲームではきちんと色が取得できていました。 また、PrintScreenを送信する方法も試そうとはしましたが、SendKeysがSecurityPermissionのせいで実行できない、と言われ、調べても解らなかったため試すことが出来ませんでした。(恐らく、出来たとしても速度的問題があるかと思われます) このような、キャプチャ可能・不可能な物の違いや、なぜPrintScreenだと写るのか、が解りません。 よろしくお願いします。 また、もし上記のURLのサンプルで写らないウィンドウを写す方法が解る方がいらっしゃいましたら、是非ご教授ください。お願いします。

みんなの回答

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

GetDC(NULL)は画面全体のDC を取得しますが、DirectXのサーフェイスとは別だからです。 多分、取り込むにはDirectXの知識が必要。 http://vision.kuee.kyoto-u.ac.jp/~nob/doc/csharp/csharp.pdf ※ちなみに単にDirectXの画面をキャプチャしたいだけなら そういうフリーソフトがあります。 http://www.vector.co.jp/soft/win95/art/se093802.html

M2452
質問者

お礼

keybd_eventを使用したらきちんとキャプチャできました。 ありがとうございました。

関連するQ&A