VC++ デスクトップキャプチャ方法
いろいろ調べたのですが、解決できずこちらに質問させていただきました。
今、VC++にてscrnsave.libを使用してスクリーンセーバーを作成しています。
困っていることは、スクリーンセーバー解除時にパスワードを要求する設定にした状態で、スクリーンセーバー動作直前の、壁紙やウィンドウを含むデスクトップ画面がキャプチャできない(壁紙のみとなってしまう)というものです。
スクリーンセーバーの動作としては、デスクトップ画面の上に、小さな四角形を表示させようとしています。
実現方法としては、以下のようにしています。
1. スクリーンセーバー動作開始時(ScreenSaverProcのWM_CREATEイベント)にGetDesktopWindow()を使用して画面キャプチャを取得
2. 画面キャプチャしたものをBitBlt()にて描画し、その上に四角形を描画
3. 1と2を繰り返す
ですがこのようにしても、パスワードを設定した場合は、画面キャプチャが壁紙のみとなってしまいます。
パスワードを設定しなければ、期待通りにウィンドウ等を含む画面キャプチャを取得できます。
Windowsの仕様なのではないかと半分あきらめていますが、パスワード設定したスクリーンセーバー動作直前の画面キャプチャをとる方法はないでしょうか。
お礼
回答ありがとうございます。 できればフリーソフトがよかったんですが、 よくばりすぎでしたね;