屏蔽Win、Ctrl_ESC、Alt_Tab、Alt_F4等键(Windows XP、Windows 2003 Server下测试通过)

 unit uHook; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, StdCtrls; type tagKBDLLHOOKSTRUCT = packed record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: DWORD; end; KBDLLHOOKSTRUCT= tagKBDLLHOOKSTRUCT; PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT; const WH_KEYBOARD_LL = 13; const LLKHF_ALTDOWN = $20; function LowLevelKeyboardProc(nCode:Integer; WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall; procedure hookstar; procedure hookend; var hhkLowLevelKybd:HHOOK; implementation function LowLevelKeyboardProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM):LRESULT; stdcall; var fEatKeystroke: BOOL; p: PKBDLLHOOKSTRUCT; begin Result:=0; fEatKeystroke:=FALSE; p:=PKBDLLHOOKSTRUCT(lParam); if (nCode=HC_ACTION) then begin case wParam of WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP, WM_SYSKEYUP: fEatKeystroke:= ((p.vkCode=VK_TAB) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or ((p.vkCode=VK_ESCAPE) and ((p.flags and LLKHF_ALTDOWN) <> 0))or (p.vkCode=VK_Lwin) or (p.vkCode=VK_Rwin) or (p.vkCode=VK_apps) or ((p.vkCode=VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or ((p.vkCode=VK_F4) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or ((p.vkCode=VK_SPACE) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or (((p.vkCode=VK_CONTROL) and (P.vkCode = LLKHF_ALTDOWN and p.flags) and (P.vkCode=VK_Delete))) end; end; if fEatKeystroke=True then Result:=1; if nCode <> 0 then Result := CallNextHookEx(0,nCode,wParam,lParam); end; procedure HookStar; begin if hhkLowLevelKybd=0 then hhkLowLevelKybd:=SetWindowsHookExW(WH_KEYBOARD_LL,LowLevelKeyboardProc, Hinstance,0); end; procedure HookEnd; begin if (hhkLowLevelKybd<>0) and UnhookWindowsHookEx(hhkLowLevelKybd) then hhkLowLevelKybd:=0; end; end. 

转载于:https://www.cnblogs.com/xieyunc/archive/2009/04/30/2793616.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值