プロが教える店舗&オフィスのセキュリティ対策術

C#.net2003を使用しています。
とあるDirect3Dを使用したアプリケーションのスクリーンをキャプチャしようとしたところ、そのウィンドウ領域が黒く塗りつぶされてしまいます。
http://homepage3.nifty.com/midori_no_bike/CS/gra … の、一番下のサンプルを使用しました)
戻ってきた数値を見ると、A.R.G.Bともに0でした。

しかし、このウィンドウをPrintScreenキーでクリップボードにキャプチャした場合は、きちんとキャプチャされています。

そこで別のDirect3D使用ゲームをキャプチャしてみたところ、そのゲームではきちんと色が取得できていました。

また、PrintScreenを送信する方法も試そうとはしましたが、SendKeysがSecurityPermissionのせいで実行できない、と言われ、調べても解らなかったため試すことが出来ませんでした。(恐らく、出来たとしても速度的問題があるかと思われます)

このような、キャプチャ可能・不可能な物の違いや、なぜPrintScreenだと写るのか、が解りません。
よろしくお願いします。

また、もし上記のURLのサンプルで写らないウィンドウを写す方法が解る方がいらっしゃいましたら、是非ご教授ください。お願いします。

A 回答 (1件)

GetDC(NULL)は画面全体のDC


を取得しますが、DirectXのサーフェイスとは別だからです。
多分、取り込むにはDirectXの知識が必要。
http://vision.kuee.kyoto-u.ac.jp/~nob/doc/csharp …

※ちなみに単にDirectXの画面をキャプチャしたいだけなら
そういうフリーソフトがあります。
http://www.vector.co.jp/soft/win95/art/se093802. …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/07/21 18:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!