程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi鎖定鼠標 模擬左右鍵 靜止一會自動隱藏鼠標

Delphi鎖定鼠標 模擬左右鍵 靜止一會自動隱藏鼠標

編輯:Delphi

Delphi設置鼠標信息,當鼠標靜止無操作時會自動隱藏鼠標,鎖定鼠標,切換左鍵和右鍵,交換鼠標,模擬鼠標左右鍵單擊效果,以下是主要的代碼。

vIEw source print? 001 unit Unit1; 002 interface 003 uses 004   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 005   Dialogs, StdCtrls, ImgList, ComCtrls, ExtCtrls; 006 type 007   TForm1 = class(TForm) 008     Button1: TButton; 009     Edit1: TEdit; 010     Button2: TButton; 011     Button3: TButton; 012     Button4: TButton; 013     Timer1: TTimer; 014     Button6: TButton; 015     Label1: TLabel; 016     RadioButton1: TRadioButton; 017     RadioButton2: TRadioButton; 018     Button5: TButton; 019     procedure Button1Click(Sender: TObject); 020     procedure Button2Click(Sender: TObject); 021     procedure Button3Click(Sender: TObject); 022     procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, 023       Y: Integer); 024     procedure Button4Click(Sender: TObject); 025     procedure Timer1Timer(Sender: TObject); 026     procedure Button6Click(Sender: TObject); 027     procedure Button5Click(Sender: TObject); 028   private 029     { Private declarations } 030   public 031     { Public declarations } 032   end; 033 var 034   Form1: TForm1; 035 implementation 036 {$R *.dfm} 037 procedure TForm1.Button1Click(Sender: TObject); 038 var  pt: TPoint; 039 begin   040    //模擬左鍵單擊 041   If RadioButton1.Checked Then 042    Begin 043     pt:= Edit1.ClIEntToScreen( Point(4,4));   //鼠標定位 044     SetCursorPos( pt.x, pt.y ); 045     mouse_event( MOUSEEVENTF_LEFTDOWN, 0000 ); 046     mouse_event( MOUSEEVENTF_LEFTUP, 0000 ); 047    end; 048    //模擬右鍵單擊 049   If RadioButton2.Checked Then 050    Begin 051     pt:= Edit1.ClIEntToScreen(Point(4,4));       //鼠標定位 052     SetCursorPos( pt.x, pt.y ); 053     mouse_event( MOUSEEVENTF_RightDOWN, 0000 ); 054     mouse_event( MOUSEEVENTF_RightUP, 0000 ); 055    end; 056  end; 057 procedure TForm1.Button2Click(Sender: TObject); 058 var btn3Rect: TRect; 059 begin 060  btn3Rect := Button3.BoundsRect; 061  MapWindowPoints(handle,0, btn3Rect, 2);  // 坐標換算 062  ClipCursor(@btn3Rect);                   // 限制鼠標移動區域 063 end; 064 procedure TForm1.Button3Click(Sender: TObject); 065 var btScreen: TRect; 066 begin 067  btScreen := Rect(00, Screen.Width, Screen.Height); 068  ClipCursor(@btScreen);       //解瑣,使鼠標在整個屏幕有效 069 end; 070   071 procedure TForm1.Timer1Timer(Sender: TObject); 072 begin 073   cursor:=crNone;   //2秒鐘沒有移動鼠標就在當前窗體隱藏鼠標 074 end; 075   076 procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, 077   Y: Integer); 078 begin 079 if Timer1.Enabled=True  then //判斷定時器是否打開 080 begin                        //如打開,則重新開始計時 081  Timer1.Enabled:=False; 082  Timer1.Enabled:=True; 083  end; 084  cursor:=crDefault;          //鼠標移動時,改變光標類型為缺省類型 085 end; 086   087 procedure TForm1.Button6Click(Sender: TObject); 088 var mouseinfo:string; 089 begin 090     //檢測是否安裝了鼠標 091  If (GetSystemMetrics(SM_MOUSEPRESENT)<>0Then 092      mouseinfo:='1.系統檢測到鼠標;' 093   Else  mouseinfo:='1.系統沒有鼠標;'; 094    //檢測鼠標是否支持滑動 095  If (GetSystemMetrics(SM_MOUSEWHEELPRESENT)<> 0Then 096      mouseinfo:=mouseinfo+'2.系統支持滑動鼠標。' 097   Else  mouseinfo:=mouseinfo+'2.系統不支持滑動鼠標。'; 098 Label1.Caption:=mouseinfo; 099 end; 100 procedure TForm1.Button4Click(Sender: TObject); 101 begin 102   SwapMouseButton(True);    //交換左右鍵 103 end; 104 procedure TForm1.Button5Click(Sender: TObject); 105 begin 106    SwapMouseButton(False); //復原左右鍵 107 end; 108 end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved