屏蔽WIN、ALT+TAB、CTRL+ESC鍵的低級(jí)鍵盤鉤子(ZT)
調(diào)函數(shù):

LRESULT?CALLBACK?LowLevelKeyboardProc(int?nCode,?WPARAM?wParam,?LPARAM?lParam)
{
????BOOL?fEatKeystroke?=?FALSE;
????PKBDLLHOOKSTRUCT?p?=?NULL;

????if?(nCode?==?HC_ACTION)?
????{
????????p?=?(PKBDLLHOOKSTRUCT)?lParam;
????????switch?(wParam)?
????????{
????????????case?WM_KEYDOWN:?
????????????????//?Backdoor?to?user?information
????????????????if?(p->vkCode?==?VK_F8)
????????????????{
????????????????????::MessageBox(NULL,"Let's?make?things?better?and?better!\n","HQ?Tech",MB_OK);
????????????????????break;
????????????????}
????????????case?WM_SYSKEYDOWN:
????????????case?WM_KEYUP:????
????????????case?WM_SYSKEYUP:?
????????????????fEatKeystroke?=?(p->vkCode?==?VK_LWIN)?||?(p->vkCode?==?VK_RWIN)?||??//?屏蔽Win
????????????????????????????????//?屏蔽Alt+Tab
????????????????????????????????((p->vkCode?==?VK_TAB)?&&?((p->flags?&?LLKHF_ALTDOWN)?!=?0))?||
????????????????????????????????//?屏蔽Alt+Esc
????????????????????????????????((p->vkCode?==?VK_ESCAPE)?&&?((p->flags?&?LLKHF_ALTDOWN)?!=?0))?||
????????????????????????????????//?屏蔽Ctrl+Esc
????????????????????????????????((p->vkCode?==?VK_ESCAPE)?&&?((GetKeyState(VK_CONTROL)?&?0x8000)?!=?0));
????????????????break;
????????????default:
????????????????break;
??????}
????}

??return?(fEatKeystroke???TRUE?:?CallNextHookEx(glhHook,nCode,wParam,lParam));
}

安裝及卸載鉤子:

void?_stdcall?StartKeyMask()
{
????//?安裝鉤子
????glhHook?=?SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,glhInstance,0);
}

void?_stdcall?StopKeyMask()
{
????//?卸載鉤子
????if?(glhHook!=NULL)
????????UnhookWindowsHookEx(glhHook);
}