delphi 获取鼠标事件  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

delphi 获取鼠标事件


type
 TForm1 = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 MouseHook: HHOOK;

implementation

{$R *.dfm}

function LowLevelMouseProc(nCode: Integer; WParam: WParam; LParam: LParam): LRESULT; stdcall;
begin
 Result := 1{CallNextHookEx(MouseHook, nCode, WParam, LParam)};
 case WParam of
   WM_LBUTTONDOWN:
     Form1.Memo1.Lines.Add('Mouse Left Button Down');
   WM_LBUTTONUP:
     Form1.Memo1.Lines.Add('Mouse Left Button Up');
   WM_LBUTTONDBLCLK:
     Form1.Memo1.Lines.Add('Mouse Left Button Double Click');
   WM_RBUTTONDOWN:
     Form1.Memo1.Lines.Add('Mouse Right Button Down');
   WM_RBUTTONUP:
     Form1.Memo1.Lines.Add('Mouse Right Button Up');
   WM_RBUTTONDBLCLK:
     Form1.Memo1.Lines.Add('Mouse Right Button Double Click');
   WM_MBUTTONDOWN:
     Form1.Memo1.Lines.Add('Mouse Middle Button Down');
   WM_MBUTTONUP:
     Form1.Memo1.Lines.Add('Mouse Middle Button Up');
   WM_MBUTTONDBLCLK:
     Form1.Memo1.Lines.Add('Mouse Middle Button Double Click');
   WM_MOUSEMOVE:
     Form1.Memo1.Lines.Add('Mouse Move');
   WM_MOUSEWHEEL:
     Form1.Memo1.Lines.Add('Mouse Wheel');
 else
   Form1.Memo1.Lines.Add('Unknown Event');
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
 MONITOR_ON = -1;
 MONITOR_OFF = 2;
 MONITOR_STANDBY = 1;
begin
 MouseHook := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, HInstance, 0);
 SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
 // SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 UnhookWindowsHookEx(MouseHook);
end;


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.04762601852417 seconds