利用热键控制鼠标移动的一个程序
时间: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实现聊天讨论室和点对点会话