我没有代码,我不清楚你的问题出现在那儿,给一个小段代码吧。但愿对你有用<br>声明:<br>const<br> WM_CAPWORD = WM_USER + 111;<br> function GetMsgProc(nCode, wparam, lparam: integer):integer;stdcall;<br>实现:<br>SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, hInstance, 0);<br><br>function GetMsgProc(nCode, wparam, lparam: integer):integer;stdcall;<br>var<br> pcwp: PMSG;<br>begin<br> result := CallNextHookEx(p.GetMsg_Hook, nCode, wparam, lparam);<br> if ncode>=0 then<br> begin<br> pcwp := PMSG(lparam); //得到当前组合按键<br> if (pcwp.message = WM_KEYDOWN) and (pcwp.wParam = VK_SHIFT) then<br> //<br> if (pcwp.message = WM_KEYDOWN) and (pcwp.wparam = VK_CONTROL) then<br> //<br> if (pcwp.message = WM_KEYUP) and (pcwp.wParam = VK_SHIFT) then<br> //<br> if (pcwp.message = WM_KEYUP) and (pcwp.wParam = VK_CONTROL) then<br> //<br> if (pcwp.message = WM_MBUTTONDOWN) then<br> //<br><br> if (pcwp.message = WM_MBUTTONUP) then<br> //<br> end;<br>end;<br><br>