• hook截获自定义消息


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    const
      WM_TestMessage = WM_USER + 2000;
    
    type
      TForm1 = class(TForm)
        btn1: TButton;
        edt1: TEdit;
        btn2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure btn1Click(Sender: TObject);
        procedure btn2Click(Sender: TObject);
    
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    var
      HookHandle: HHOOK;
     
    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;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      HookHandle:=SetWindowsHookEx(WH_GETMESSAGE,TestHookProc,0,GetCurrentThreadID);
    end;
     
    procedure TForm1.btn1Click(Sender: TObject);
    begin
      PostMessage(self.Handle,WM_TestMessage,0,0);
    end;
    
    procedure TForm1.btn2Click(Sender: TObject);
    var
      s:string;
    begin
      s:= 'abc';
      SendMessage(edt1.Handle,WM_SETTEXT,0,integer(PChar(s)));
    end;
    
    end.
    书搞进脑袋 创新 创造; 积极
  • 相关阅读:
    sass和less的对比
    vue 源码分析
    vue的全家桶
    Vue组件化和路由
    开发技术文档汇总
    NodeJs前端构建工具 ——————之Grunt篇
    grunt使用小记之uglify:最全的uglify使用DEMO
    20 种提升网页速度的技巧
    webfont应用系列(二)如何制作图标字体?
    快速上手制作Icon Font
  • 原文地址:https://www.cnblogs.com/tobetterlife/p/12170582.html
Copyright © 2020-2023  润新知