被Hook屏蔽后 怎样恢复系统安键????救命。。。。
最近在改一个程序 里面有一个 当程序运行是屏蔽所有系统安键的功能
用到了 SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, AfxGetInstanceHandle(), 0);
LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{ BOOL fEatKeystroke = FALSE;
if (nCode == HC_ACTION)
{switch (wParam)
{ case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)lParam;
fEatKeystroke = (
// win
p->vkCode == VK_LWIN || p->vkCode == VK_RWIN
// F4 + alt
|| ((p->vkCode == VK_F4) && ((p->flags & LLKHF_ALTDOWN) != 0))
// tab + alt
|| ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0))
// esc + alt
|| ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0))
// esc + ctrl
|| ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)));
break;
}
}
return (fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}
我判断这个应该是屏蔽用的 在程序结束后用了一个
UnhookWindowsHookEx(XXX);
在OnDestroy()里面 , 应该是 释放用的吧?
现在的问题是 我在程序执行过程中非法 退出了 。。 结果现在系统 按键全废了。。。开始菜单的关机也被搞没了
大哥们 我怎么办?????