Mouse - exemplo de mouse hook

Top  Previous  Next

Exemplo de Windows Mouse Hook:

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

 

type

  TForm1 = class(TForm)

    Label1: TLabel;

    procedure FormCreate(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

  public

  end;

 

  function myHookProc(code : Integer; wParam, lParam : LongInt) : Longint; stdcall;

 

var

  Form1: TForm1;

  myHook : hHook;

 

implementation

 

{$R *.DFM}

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  myHook := SetWindowsHookEx(WH_MOUSE, myHookProc, hInstance, GetCurrentThreadID);

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  UnHookWindowsHookEx(myHook);

end;

 

function myHookProc(code : Integer; wParam, lParam : LongInt) : LongInt;

var

  X, Y : Integer;

begin

  X := PMouseHookStruct(lParam).pt.X;

  Y := PMouseHookStruct(lParam).pt.Y;

  Form1.Label1.Caption := IntToStr(X) + ' : ' + IntToStr(Y);

  result := CallNextHookEx(MyHook, Code, wParam, lParam);

end;

 

end.