坏境:windows XP 在使用SetWindowsHook截获鼠标事件时,如果使用WH_MOUSE参数,则只能监控钩子所在模块的鼠标事件。 如需要截获整个系统的鼠标事件,那么使用WH_MOUSE_LL参数。 //install hmouse=SetWindowsHookEx(WH_MOUSE_LL,(HOOKPROC)mouseproc,GetModuleHandle("KeyMonitor.dll"),0);//挂上鼠标钩子 //call back if(code<0)//若code〈0,则直接调用callnexthookex返回 return CallNextHookEx(hhook, code, wParam, lParam); else if(code==HC_ACTION) { if(wParam==WM_MOUSEMOVE) {//离开主窗体 &&((PMOUSEHOOKSTRUCT)lParam)->hwnd!=main->Handle int x=((PMSLLHOOKSTRUCT)lParam)->pt.x; int y=((PMSLLHOOKSTRUCT)lParam)->pt.y; if(!(x>=main->Left&&x<=(main->Left+main->Width)&&y>=main->Top&&y<=(main->Top+main->Width))) SendMessage(main->Handle,WM_MOUSELEAVE,0,0); } } return CallNextHookEx(hhook, code, wParam,lParam);