☆スクリーンショットを無効にする。
会社のパソコンでスクリーンショットが撮れず、いろいろ調べた結果、自作のソフトが原因だとわかりました。
もう何年も昔に作ったもので、スクリーンショットを無効にするような機能を実装していたなんてすっかり忘れていました。プログラム中にPC-98用、DOS/V用なんてコメントもあってなんか懐かしかったです。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; public end; var Form1: TForm1; implementation {$R *.dfm} const SnapShot1 = 1; SnapShot2 = 2; SnapShot3 = 3; SnapShot4 = 4; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if Msg.HotKey in [SnapShot1, SnapShot2, SnapShot3, SnapShot4] then begin Msg.Msg :=0; Msg.HotKey :=0; Msg.Unused :=0; Msg.Result :=0; ShowMessage('スクリーンショットは無効です'); end; inherited; end; procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotkey(Handle, SnapShot1, 0 , VK_SNAPSHOT); RegisterHotkey(Handle, SnapShot2, MOD_SHIFT , VK_SNAPSHOT); RegisterHotkey(Handle, SnapShot3, MOD_CONTROL, VK_SNAPSHOT); RegisterHotkey(Handle, SnapShot4, MOD_ALT , VK_SNAPSHOT); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotkey(Handle, SnapShot1); UnRegisterHotkey(Handle, SnapShot2); UnRegisterHotkey(Handle, SnapShot3); UnRegisterHotkey(Handle, SnapShot4); end; end.
| 固定リンク