利用熱鍵控制鼠標移動的一個程序
時間:2022-11-17 10:34:00
導語:利用熱鍵控制鼠標移動的一個程序一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
本程序可以使用熱鍵來將鼠標移動到某一個指定的坐標。是一個定義熱鍵的示例程序。
本程序的熱鍵為小鍵盤的5,在編輯框內可以指定坐標。
unitMainUnit;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
StdCtrls,Mask;
type
TForm1=class(TForm)
btnSetHK:TButton;
btnExit:TButton;
GroupBox2:TGroupBox;
Label3:TLabel;
Label4:TLabel;
btnUnsetHK:TButton;
edYPos:TMaskEdit;
edXPos:TMaskEdit;
Memo:TMemo;
procedurebtnExitClick(Sender:TObject);
procedurebtnSetHKClick(Sender:TObject);
procedurebtnUnsetHKClick(Sender:TObject);
procedureOnHotKey(varMessage:TWMHOTKEY);messageWM_HOTKEY;
procedureFormDestroy(Sender:TObject);
public
{Publicdeclarations}
end;
var
Form1:TForm1;
const
idHotKey:WORD=0;
implementation
{$R*.DFM}
procedureTForm1.btnExitClick(Sender:TObject);
begin
Close;
end;
procedureTForm1.btnSetHKClick(Sender:TObject);
begin
ifidHotKey<>0thenExit;
idHotKey:=GlobalAddAtom(''''EmuMouse'''');//給熱鍵取得一個唯一的標識
RegisterHotKey(Handle,idHotKey,0,VK_NUMPAD5);//注冊熱鍵
end;
procedureTForm1.OnHotKey(varMessage:TWMHOTKEY);
var
Point:TPoint;
X,Y:Word;
begin
GetCursorPos(Point);//取回當前坐標
try
X:=StrToInt(edXPos.Text);
Y:=StrToInt(edYPos.Text);
except
ShowMessage(''''坐標輸入不正確.'''');
Exit;
end;
try
Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN,Point.X,Point.Y,0,GetMessageExtraInfo);
SetCursorPos(X,Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTUP,X,Y,0,GetMessageExtraInfo);
except
ShowMessage(''''Error'''');
end;
end;
procedureTForm1.btnUnsetHKClick(Sender:TObject);
begin
ifidHotKey=0thenExit;
UnRegisterHotKey(Handle,idHotKey);//注銷熱鍵
DeleteAtom(idHotKey);//注銷標識
idHotKey:=0;
end;
procedureTForm1.FormDestroy(Sender:TObject);
begin
btnUnsetHK.Click;
end;
end.
--------------------------------------------------------------------------------
這是dfm文件
objectForm1:TForm1
Left=296
Top=238
AutoSize=True
BorderStyle=bsDialog
BorderWidth=8
Caption=''''模擬鼠標拖動''''
ClientHeight=265
ClientWidth=211
Color=clBtnFace
Font.Charset=GB2312_CHARSET
Font.Color=clWindowText
Font.Height=-12
Font.Name=''''新宋體''''
Font.Style=[]
OldCreateOrder=False
OnDestroy=FormDestroy
PixelsPerInch=96
TextHeight=12
objectbtnSetHK:TButton
Left=136
Top=8
Width=75
Height=25
Caption=''''設置熱鍵(&H)''''
TabOrder=0
OnClick=btnSetHKClick
end
objectbtnExit:TButton
Left=136
Top=72
Width=75
Height=25
Caption=''''退出(&X)''''
TabOrder=2
OnClick=btnExitClick
end
objectGroupBox2:TGroupBox
Left=0
Top=0
Width=129
Height=97
Caption=''''目的坐標''''
TabOrder=3
objectLabel3:TLabel
Left=16
Top=29
Width=6
Height=12
Caption=''''X''''
end
objectLabel4:TLabel
Left=16
Top=61
Width=6
Height=12
Caption=''''Y''''
end
objectedXPos:TMaskEdit
Left=32
Top=24
Width=73
Height=20
EditMask=''''0000;1;_''''
MaxLength=4
TabOrder=0
Text=''''0000''''
end
objectedYPos:TMaskEdit
Left=32
Top=56
Width=73
Height=20
EditMask=''''0000;1;_''''
MaxLength=4
TabOrder=1
Text=''''0000''''
end
end
objectbtnUnsetHK:TButton
Left=136
Top=40
Width=75
Height=25
Caption=''''取消熱鍵(&U)''''
TabOrder=1
OnClick=btnUnsetHKClick
end
objectMemo:TMemo
Left=0
Top=104
Width=209
Height=161
TabOrder=4
end
end
- 上一篇:計算機畢業論文:Delphi常用應用函數
- 下一篇:用VB實現聊天討論室和點對點會話