Alex Ловушка установлена для всей системы.
Код обработки сообщения предлельно прост:
Код | procedure HookProc(code: Integer; wParam, lParam: Longint); stdcall; var h: hwnd; //Mosestruct: PMouseHookStruct; begin CallNextHookEx(HookHandle, code, wParam, lParam); if code=HC_ACTION then if wParam = WM_RBUTTONDOWN then begin h:=GetForegroundWindow; SetWindowText(h,'RightButtonDown(WH_MOUSE)'); end; end; |
Код установки ловушки:
Код | function SetHook(State: Boolean): boolean; export; stdcall; begin Result:=false; if State and (HookHandle=0) then begin HookHandle:=SetWindowsHookEx(WH_MOUSE, @HookProc, HInstance, 0); Result:=(HookHandle<>0); end else if (State=false) and (HookHandle<>0) then begin UnhookWindowsHookEx(HookHandle); HookHandle:=0; Result:=true; end; end; | |