function TestHookProc(Code: Integer; WParam: Longint;Msg:Longint): Longint;stdcall;
begin
    if (Code = HC_ACTION) then
    if PMsg(Msg)^.Message = WM_TestMessage then
    begin
      showMessage('已经截获该消息');
    end;
    Result := CallNextHookEx(HookHandle, Code, WParam, Longint(@Msg));
end;

解决方案 »

  1.   

    if (Code = HC_ACTION) then// Code是键盘消息的处理方式 HC_ACtion表示收到一个正常的击键消息
        if PMsg(Msg)^.Message = WM_TestMessage then  //判断消息类型
        begin  //如果是自己需要的消息就执行自己的代码
          showMessage('已经截获该消息');
        end;
        //挂钩下一个挂钩函数(因为钩子是一个链)
        Result := CallNextHookEx(HookHandle, Code, WParam, Longint(@Msg));