同样的程序:键盘钩子就OK,鼠标钩子就无法结束!太苦恼了!!
就是这样的简单任务,还是会出错。鼠标钩子运行时,无法正常停止,只能通过注销用户结束程序。
KeyHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, glhInstance, dwThreadID );
//MouseHook = SetWindowsHookEx(WH_MOUSE, KeyboardProc, glhInstance, dwThreadID );
LRESULT WINAPI KeyboardProc(int nCode,WPARAM wparam,LPARAM lparam)
{
char buffer[10];
_itoa( wparam, buffer, 10);
if (nCode < 0)
{
return CallNextHookEx(KeyHook,nCode,wparam,lparam);
}
if (nCode != HC_ACTION)
{
return CallNextHookEx(KeyHook,nCode,wparam,lparam);
}
if (!::FindWindow(0, "KeyBoard Locked"))
{
::MessageBox(0,buffer,"KeyBoard Locked",MB_OK);
}
if (m_bOperator)
{
SendMessage( m_hWndMain, AS_SENDMSG, 0, 0);
return CallNextHookEx(KeyHook, nCode, wparam, lparam );//继续传递消息
}
else
return 1;
}