HHOOK OldHook; //钩子句柄
//---------------------------------------------------------------------------
//*
//这个是钩子的回调函数
long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam)
{
KBDLLHOOKSTRUCT *pkbhs;
if (code < 0)
{
return CallNextHookEx(OldHook, code, wParam, lParam);
}
pkbhs = (KBDLLHOOKSTRUCT*) lParam;
if (pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN)
{
return 1; //封锁win键
}
if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)<0)
{
return 1; //封锁 CTRL+ESC
}
// if (pkbhs->vkCode == VK_TAB && pkbhs->flags&LLKHF_ALTDOWN)
// {
// return 1; //封锁 ALT+TAB
// }
// if (pkbhs->vkCode == VK_F4 && pkbhs->flags&LLKHF_ALTDOWN)
// {
// return 1; //封锁 ALT+F4
// }
if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags&LLKHF_ALTDOWN)
{
return 1; //封锁 ALT+ESC
}
// if (pkbhs->vkCode == VK_SPACE && GetAsyncKeyState(VK_CONTROL)<0)
// {
// return 1; //封锁 CTRL+Space
// }
return CallNextHookEx(OldHook, code, wParam, lParam);
}
//---------------------------------------------------------------------------
//*/
//注册钩子
OldHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyProc, HInstance, 0);
//销毁钩子
UnhookWindowsHookEx( OldHook );