5,927
社区成员




function MenuWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):
LRESULT; stdcall;
var
begin
case MSG of
WM_WM_LBUTTONDOWN:
begin
end;
Wm_.. //加你要处理的消息
end;
end;
function WindowsHook(Code: Integer; wParam: Integer; lParam: Integer): LRESULT; stdcall;
var
ClassName: array[0..63] of Char;
lastWndProc: Pointer;
begin
if (Code = HC_ACTION) and ((pStruct^.message <> WM_CREATE) or (pStruct^.message <> $01E2)) and
(GetClassName(pStruct^.hwnd, @ClassName[0], SizeOf(ClassName)) = 6) and
(StrPas(@ClassName[0]) = '#32768') then
begin
lastWndProc := Pointer(GetWindowLong(pStruct^.hwnd, GWL_WNDPROC));
if lastWndProc <> @MenuWndProc then
begin
SetWindowLong(pStruct^.hwnd, GWL_WNDPROC, Integer(@MenuWndProc));
MenuOldWndProc := lastWndProc;
end;
end;
Result := CallNextHookEx(WH_CALLWNDPROC, Code, wParam, lParam);
end;
SetWindowsHookEx(WH_CALLWNDPROC, WindowsHook, hInstance, GetCurrentThreadId);