作者:xueer2502938817_416 | 来源:互联网 | 2023-01-03 16:14
请问键盘全局钩子使用底层钩子,SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardHookPro,hdl,0);LRESULTCALLBACKKey
请问键盘全局钩子使用底层钩子,
SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardHookPro,hdl,0);
LRESULT CALLBACK KeyBoardHookPro(int nCode,WPARAM wParam,LPARAM lParam)
{
PKBDLLHOOKSTRUCT Param = (PKBDLLHOOKSTRUCT)lParam;
if(nCode == HC_NOREMOVE)
{
return CallNextHookEx(pHook,nCode,wParam,lParam);
}
if(nCode == HC_ACTION)
{
if(wParam == WM_KEYDOWN)
{
MessageBox(NULL,L"132",L"键值",MB_OK);
}
}
return CallNextHookEx(pHook,nCode,wParam,lParam);
}
按一个键,能够弹出一个提示框,但提示框的“确定”按钮开始点不动,过几秒种才能按下
程序设置为管理员权限运行,LowLevelHooksTimeout默认为5000
好像卡住了一样,win 7系统中这个参数有个超时,不知道和这个有关系没?
3 个解决方案
钩子里面不要放阻塞性操作,应该尽快返回,调用MessageBox是自己找死锁。
想输出信息可以用OutputDebugString