こんにちは、SetWindowHookEx APIを使用してCTRL + ALT + DELをロックするには?
私は、私は、コードを行っているし、今まで働いていないSetWindowsHookEx
と今日を使用してCTRL + ALT + DEL組み合わせをロックする必要があります。
このコードは、他のプロセスで注入されたdll(このDLLは私のソフトウェアです)で実行されています。
私はこのコードを以下のように動作させることができますか?
const
WH_KEYBOARD_LL = 13;
LLKHF_ALTDOWN = $20;
type
KBDLLHOOKSTRUCT = record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: Longint ;
end;
var
hhkLowLevelKybd : HHOOK;
FoldProc : LongInt;
hSASWnd : HWND;
hThread : Cardinal;
{$R *.dfm}
Function LowLevelKeyboardProc(nCode : Integer; wParam : Longint; var LParam: KBDLLHOOKSTRUCT) : Longint; stdcall;
var
fEatKeystroke : Boolean;
dwThreadId : Cardinal;
begin
If (nCode = HC_ACTION) Then
begin
If (wParam = WM_KEYDOWN) Or
(wParam = WM_SYSKEYDOWN) Or
(wParam = WM_KEYUP) Or
(wParam = WM_SYSKEYUP) Then
begin
fEatKeystroke :=
(((GetKeyState(VK_CONTROL) And $8000) <> 0) And
((LParam.flags And LLKHF_ALTDOWN) <> 0) And
(LParam.vkCode = VK_DELETE));
End;
If fEatKeystroke Then
Result := -1
Else
Result := CallNextHookEx(0, nCode, wParam, LongInt(@LParam));
End;
end;
////////// FormCreate event here ///////////
hhkLowLevelKybd := 0;
hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, @LowLevelKeyboardProc,
HInstance, 0);
end.
Windowsでは、そのキーの組み合わせを傍受することはできません。以前のバージョンでは可能でしたが、最近のバージョンでは、そのキーの組み合わせをブロックできない低レベルで処理しています。それはセキュリティ問題です。関連項目:http://stackoverflow.com/q/17103682/62576 –
関連項目[[誰でも使用できるようにデバイスを設定する(キオスクモード)](https://technet.microsoft.com/sv-se/itpro/windows) /管理する/誰かのためにデバイスを設定する)。 –
最も簡単な方法は、キーボードからこれらの3つのキーの1つを削除することです。 –