Delphi 鼠标移动

procedure TForm1.Button1Click(Sender: TObject);
var
  oldPoint, newPoint: TPOINT;
begin
  GetCursorPos(oldPoint); //保存当前鼠标位置。
  newPoint.x := oldPoint.x + 400;
  newPoint.y := oldPoint.y + 100;
  SetCursorPos(newPoint.x, newPoint.y); //设置目的地位置。
  Sleep(1000 * 3);
//  mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0); //模拟按下鼠标右键。
//  mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); //模拟放开鼠标右键。
//  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //模拟按下鼠标左键。
//  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //模拟放开鼠标左键。
//  keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), 0, 0); //按下SHIFT键。
//  keybd_event(0x52, MapVirtualKey(0 x52, 0), 0, 0); //按下R键。
//  keybd_event(0x52, MapVirtualKey(0 x52, 0), KEYEVENTF_KEYUP, 0); //放开R键。
//  keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), KEYEVENTF_KEYUP, 0); //放开SHIFT键。
  SetCursorPos(oldPoint.x, oldPoint.y);

end;


--=================================================================================================================

//获取鼠标在窗体中的当前位置
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
str: string;
begin
str := Format('%d,%d',[X,Y]);
ShowMessage(str);
end;


//用 GetCursorPos 获取的是鼠标相对与屏幕的位置
var
ps: TPoint;
str: string;
begin
GetCursorPos(ps);
str := Format('%d,%d',[ps.X,ps.Y]);
ShowMessage(str);
end;


//但通过 ScreenToClient 方法可以转换过来
var
ps: TPoint;
str: string;
begin
GetCursorPos(ps);

ps := ScreenToClient(ps);

str := Format('%d,%d',[ps.X,ps.Y]);
ShowMessage(str);
end;


// ClientToScreen 函数
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
str: string;
ps: TPoint;
begin
{显示当前鼠标位置, 这是相对于窗体的}
str := Format('%d,%d',[X,Y]);
ShowMessage(str);

{通过 ClientToScreen 函数可以得到当前鼠标相对于屏幕的位置}
ps := point(X,Y);

ps := ClientToScreen(ps);
str := Format('%d,%d',[ps.X, ps.Y]);
ShowMessage(str);
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值