18.3 控制鼠标移动

本文介绍了如何使用Python库PyAutoGUI进行鼠标操作,包括通过moveTo()和moveRel()函数移动鼠标,以及利用position()获取鼠标当前位置。通过示例代码详细阐述了坐标系统的理解及函数参数的使用,帮助读者掌握在不同分辨率屏幕上的鼠标控制技巧。
摘要由CSDN通过智能技术生成

在本节中,你将学习如何利用 pyautogui  移动鼠标,追踪它在屏幕上的位置,但首先需要理解 pyautogui 如何处理坐标。
pyautogui 的鼠标函数使用x、y 坐标。图 18-1 中展示了计算机屏幕的坐标系统。它与 17 章中讨论的图像坐标系统类似。原点的x、y 都是零,在屏幕的左上角。向右 x 坐标增加,向下 y 
坐标增加。所有坐标都是正整数,没有负数坐标。分辨率是屏幕的宽和高有多少像素。如果屏幕的分辨率设置为 1920 × 1080,那么左上角的坐标是(0,0),右下角的坐标是(1919,1079)。
pyautogui.size() 函数返回两个整数的元组,包含屏幕的宽和高的像素数。在交互式环境中输入下面内容:

分辨率是屏幕的宽和高有多少像素。如果屏幕的分辨率设置为 1920 × 1080,那么左上角的坐标是(0,0),右下角的坐标是(1919,1079)。
pyautogui.size() 函数返回两个整数的元组,包含屏幕的宽和高的像素数。在交互式环境中输入下面内容:

 

>>>  import  pyautogui
>>>  pyautogui.size()
(1920,  1080)
>>>  width,  height  =  pyautogui.size()

在分辨率为 1920 × 1080 的计算机上,pyautogui.size() 返回(1920,1080)。根据屏幕分辨率的不同,返回值可能不一样。你可以将来自 pyautogui.size() 
的宽和高存在变量中,如 width 和 height,让程序的可读性更好。

1   移动鼠标
既然你理解了屏幕坐标,就让我们来移动鼠标。pyautogui.moveTo() 函数将鼠标立即移动到屏幕的指定位置。表示 x、y  坐标的整数值分别构成了函数的第一个和第二个参数。可选的 
duration 整数或浮点数关键字参数,指定了将鼠标移到目的位置所需的秒数。如果不指定,默认值是零,表示立即移动(在 PyAutoGUI 函数中,所有的 duration 
关键字参数都是可选的)。在交互式环境中输入以下内容:
>>>  import  pyautogui
>>>  for  i  in  range(10):
pyautogui.moveTo(100,  100,  duration=0.25)
pyautogui.moveTo(200,  100,  duration=0.25)
pyautogui.moveTo(200,  200,  duration=0.25)
pyautogui.moveTo(100,  200,  duration=0.25)

这个例子根据提供的坐标,以正方形的模式顺时针移动鼠标,移动了 10 次。每次移动耗时 0.25 秒,因为有关键字参数指定 
duration=0.25。如果没有指定函数调用的第三个参数,鼠标就会马上从一个点移到另一个点。
pyautogui.moveRel() 函数相对于当前的位置移动鼠标。下面的例子同样以正方形的模式移动鼠标,只是它从代码开始运行时鼠标所在的位置开始,按正方形移动:
>>>  import  pyautogui
>>>  for  i  in  range(10):
pyautogui.moveRel(100,  0,  duration=0.25)
pyautogui.moveRel(0,  100,  duration=0.25)
pyautogui.moveRel(-100,  0,  duration=0.25)
pyautogui.moveRel(0,  -100,  duration=0.25)

pyautogui.moveRel() 也接受 3 个参数:向右水平移动多少个像素,向下垂直移动多少个像素,以及(可选的)花多少时间完成移动。为第一第二个参数提供负整数,鼠标将向左或向上移动。

2   获取鼠标位置
通过调用 pyautogui.position() 函数,可以确定鼠标当前的位置。它将返回函数调用时,鼠标 x、y  坐标的元组。在交互式环境中输入以下内容,每次调用后请移动鼠标:


>>>  pyautogui.position()
(311,  622)
>>>  pyautogui.position()
(377,  481)
>>>  pyautogui.position()
(1536,  637)

当然,返回值取决于鼠标的位置。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值