いつも勉強させて頂いています。環境はVB6、WINDOWS2000です。
以前自分で作ったアプリでは画面キャプチャを禁止するためにPrtScキーを監視して
クリップボードを空にする仕組みを入れていました。
これはこれで正しく動作するので問題無いのですが、市販やフリーソフト等の
画面キャプチャソフト経由では簡単に画面が撮れてしまいます。
これを解決するには他アプリがGetWindowDCなどのAPIを呼び出すのを監視して
もし呼び出されたら自アプリで何らかの対応をすると言う事になると思うのですが
この様な事は実際に可能なのでしょうか。
よろしくお願いいたします。
全くの不可能ではないけど、困難の極みになるでしょう。
# 理由はともあれキャプチャーを禁止する仕様はWindows
# 的に無理がありますよね。
> PrtScキーを監視して
クリップボードチェインによる監視ではないのですね?
Microsoft Office "OneNote" のように、PrtScr を使わないタイプや
クリップボードを経由しないパターンもありうるので、厳密な抑制は
なかなか難しいでしょうね。
> APIを呼び出すのを監視して
APIMON や APISPY のような物ですか?
CreateProcess で DEBUG_PROCESS フラグを指定して起動したアプリなら、
API の監視は可能かもしれませんが、API を監視するにしても、
Microsoft VirtualPC やリモートデスクトップ経由でキャプチャされたと
すれば、それらの認識は困難かと思われます。どこかで妥協が必要では。
> この様な事は実際に可能なのでしょうか。
Security Platform ( SeP ) などというソフトが市販されています。
試した事がないので、実際の内容までは知りませんが。
K.J.K.様、Dental様。
ご返信ありがとうございます。
># 理由はともあれキャプチャーを禁止する仕様はWindows
># 的に無理がありますよね。
そうですね、厳しいかとは思います。
リモートアクセスでキャプチャされてしまうのは妥協の範囲として
できたらAPIでのキャプチャだけでも何とか出来れば自アプリの機能向上や
自分の技術向上になると思いトライできないかなと思った次第です。
>Security Platform ( SeP ) などというソフトが市販されています。
やはり個人の技量で市販を超える事はできなさそうですね。
ありがとうございました。
万が一ウインドウがアクティブでなくても監視ができるようにキー入力APIでPrintScreenが押されたかチェックをし、押されていたらクリップボードの中身を消去するようにすればできるかもしれないですねぇ
できないかもしれないですが