• ベストアンサー

プリントスクリーンの自動化

ウィンドウをプリントスクリーンしてファイルに保存する一連の動作を自動で実行するプログラムをC++で作ることは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

真面目に実装するなら、 GetDesktopWindow、CreateCompatibleDC、CreateCompatibleBitmap、BitBlt aあたり のAPIを使えばできます。 GetDesktopWindow でデスクトップ(画面全体)のウィンドウハンドルが取得できるので、CreateCompatibleDC/CreateCompatibleBitmapで互換ビットマップを作った後、BitBltで表示内容を取得。 手を抜くなら、keybd_event 。キー操作イベントを発行するAPIですので、「VK_SNAPSHOT を押す」「VK_SNAPSHOT を離す」の2イベントを発生させれば、キーボードからPrintScreenを押したのと同じ操作がプログラム上から実現できます。 あとは、OpenClipboard/GetClipboardData/CloseClipboardでクリップボードの内容を取得できますから、それをファイル保存。 どちらにせよ、「キー割り込みフック」なんてのは不要です。

ureo
質問者

お礼

ありがとうございます。 無事に解決することができました。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

可能です。キー割り込みさえフックできればいいのでは?

ureo
質問者

お礼

ありがとうございます。 無事に解決することができました。

関連するQ&A