2010-12-27
PrintScreenキーを無効にしてスクリーンショットを無効化する
セキュリティ的に絶対的な効果はないけど、アプリケーションの実行中にPrintScreenキーを無効にしてスクリーンショットを撮れなくするのはそれなりの抑止力があるはず。キーストロークをWindowsに登録するホットキーはフックよりも実装が楽。元ネタは、ここ。
1.アプリケーションの開始時(メインフォームのOnCreateイベント)にホットキーを登録。終了時にホットキーの登録を削除。
const int TfrmMain::HotkeyID1 = 0x0001; const int TfrmMain::HotkeyID2 = 0x0002; //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { RegisterHotKey(Application->Handle, HotkeyID1, 0,VK_SNAPSHOT); RegisterHotKey(Application->Handle, HotkeyID2, MOD_ALT,VK_SNAPSHOT); } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action) { UnregisterHotKey(Application->Handle,HotkeyID1); UnregisterHotKey(Application->Handle,HotkeyID2); } //---------------------------------------------------------------------------
2.フォームにTApplicationEventsを貼り、OnMessegeイベントでウィンドウメッセージを受け付ける
//--------------------------------------------------------------------------- void __fastcall TfrmMain::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { if ((Msg.message == WM_HOTKEY) && (HIWORD(Msg.lParam) == VK_SNAPSHOT)) { if ((Msg.wParam == HotkeyID1) || (Msg.wParam == HotkeyID2)) { // PrintScreenキーが押された場合の処理 return; } } } //---------------------------------------------------------------------------
キャプチャ関係は、Antinnyをはじめとする暴露ウイルスはもちろんのこと、Snipping ToolとかWinShotといったキャプチャソフトが入っていたらアウトなので、この辺は運用ポリシーで補う以外無い。
クリップボードの監視を行うのであれば、JVCLのTJvClipboardMonitorを使うのが楽。フォームに貼るだけでクリップボードの監視が出来る。
//--------------------------------------------------------------------------- void __fastcall TfrmMain::JvClipboardMonitor1Change(TObject *Sender) { if (!Clipboard()->HasFormat(CF_TEXT)) { // テキスト以外は強制的にクリア Clipboard()->Clear(); } } //---------------------------------------------------------------------------
トラックバック - http://d.hatena.ne.jp/A7M/20101227/1293416030
リンク元
- 5 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4TSJB_jaJP380JP380&q=C++Builder+database
- 3 http://homepage2.nifty.com/Km/link.htm
- 3 http://www.google.co.jp/search?hl=ja&q=c++builder+xe&lr=lang_ja&rlz=1I7ADFA_ja
- 3 http://www.google.co.jp/search?q=boost+string&hl=ja&client=firefox-a&hs=Sl3&rls=org.mozilla:ja:official&prmd=ivns&lr=lang_ja&sa=X&ei=EfwXTd21LYaCvgOwoZjsDQ&ved=0CBcQuAE
- 3 http://www.google.com/search?q=RAD+Studio+XE&hl=ja&lr=lang_ja&num=100
- 3 http://www.vector.co.jp/vpack/browse/person/an053069.html
- 2 http://d.hatena.ne.jp/keyword/Uncrustify
- 2 http://search.yahoo.co.jp/search?p=C++Builder+Unicode&tid=top_ga1_sa&ei=UTF-8&pstart=1&fr=top_ga1_sa&b=11
- 2 http://search.yahoo.co.jp/search?p=C++Builder6+designide&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 2 http://search.yahoo.co.jp/search?p=c++builder 使い方&rs=4&aq=-1&ei=UTF-8&fr=top_ga1_sa