
本站地址:http://www.bajiao123.com

}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam,
lParam));
}
此处为捕获、屏蔽系统功能热键的回调函数,用户可根据需要添加修改需要屏蔽的按键。
//屏蔽Ctrl+Esc/Alt+Tab/Win/F1/Alt+Esc等功能按键------------------------------------------------------------------
LRESULT CALLBACK ShieldKeyProc(int nCode,WPARAM wParam,LPARAM lParam)
{
bool fEatKeystroke = FALSE;
//PKBDLLHOOKSTRUCT p = NULL;
if (nCode == HC_ACTION)
{
switch (wParam) {
case WM_KEYDOWN: case WM_SYSKEYDOWN:
case WM_KEYUP: case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
fEatKeystroke =
(p->vkCode==VK_F1)||//F1
((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0))|| //Alt+Tab
((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) || //Alt+Esc
((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)) || //Ctrl+Esc
(((GetKeyState(VK_CONTROL) & 0x8000) != 0) && (p->vkCode == VK_SPACE))|| //Ctrl+Space
(((GetKeyState(VK_CONTROL) & 0x8000) != 0) && ((GetKeyState(VK_SHIFT) & 0x8000) != 0));
break;
}
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam,
lParam));
}
这个函数负责根据客户端调用参数,向系统注册、注销HOOK。HOOK必须在不要的时候卸载!
//HWND hWnd:客户端程序调用窗体的句柄,bool nCode:挂还是不挂HOOK的标志,bool bWhich:挂哪个HOOK的标志
char _stdcall ActivateKey(HWND hWnd,bool nCode,bool bWhich)
上一页 [1] [2] [3] [4] [5] [6] 下一页
本站地址:http://www.bajiao123.com

