Delphi 鼠标控制函数GetCursorPos、SetCursorPos

GetCursorPos函数  获取鼠标的位置

1
2
3
4
5
var
   P: TPoint;
begin
   GetCursorPos(P); //获取鼠标位置
end;

 

SetCursorPos函数 设置鼠标的位置

1
2
3
4
5
6
7
8
var
  x,y:integer; //
begin
  x:=614; y:=282; //
  SetCursorPos(x,y); //
  Mouse_Event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //开始点击
  Mouse_Event(MOUSEEVENTF_LEFTUP,0,0,0,0); //弹出
end;

 

mouse_event,用于模拟鼠标动作。无返回值。参数1类型:整数型(Integer),鼠标动作标识;参数2类型:整数型(Integer),鼠标动作的水平坐标X;参数3类型:整数型(Integer),鼠标动作的垂直坐标Y;参数4类型:整数型(Integer),鼠标滚轮转动方向,若当前鼠标无滚轮动作,则取值为0;参数5在Windows SDK中的函数原型:
VOID mouse_event(

    DWORD dwFlags, // flags specifying various motion/click variants 鼠标动作标识
    DWORD dx, // horizontal mouse position or position change 鼠标动作的水平坐标
    DWORD dy, // vertical mouse position or position change 鼠标动作垂直坐标
    DWORD dwData, // amount of wheel movement 当鼠标动作标识为MOUSEEVENTF_WHEEL时,此参数为鼠标滚轮转动方向,正值表示滚轮向前旋转,远离用户;负值表示滚轮向后旋转,向用户。
    DWORD dwExtraInfo  // 32 bits of application-defined information 设定一个32位值用于取扩展信息
   );

鼠标动作标识:

  MOUSEEVENTF_MOVE            = $0001; { mouse move 鼠标移动}
  MOUSEEVENTF_LEFTDOWN        = $0002; { left button down 左键按下}
  MOUSEEVENTF_LEFTUP          = $0004; { left button up 左键弹起}
  MOUSEEVENTF_RIGHTDOWN       = $0008; { right button down 右键按下}
  MOUSEEVENTF_RIGHTUP         = $0010; { right button up 右键弹起}
  MOUSEEVENTF_MIDDLEDOWN      = $0020; { middle button down 中间按下}
  MOUSEEVENTF_MIDDLEUP        = $0040; { middle button up 中键弹起}
  MOUSEEVENTF_WHEEL           = $0800; { wheel button rolled 滚轮移动}
  MOUSEEVENTF_ABSOLUTE        = $8000; { absolute move 绝对移动}

 

 

其他操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  SDC: HDC;
  SColor: COLORREF;
begin
  //鼠标移动到坐标X:20 Y:30初
  Mouse.CursorPos := Point(20, 30);
 
  //获取屏幕坐标X:20 Y:30初的颜色
  SDC := GetDC(0);
  SColor := GetPixel(SDC, 20, 30);
  ReleaseDC(0, SDC);
 
  //把取到的颜色画在屏幕上
  Canvas.Brush.Color := SColor;
  Canvas.FillRect(Rect(0, 0, 50, 50));

  

posted on   滔Roy  阅读(2360)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报

导航

点击右上角即可分享
微信分享提示