目录
PyAutoGUI模块是Python专属的图形用户界面自动化的技术(简称GUI自动化)的模块,全自动控制您的键盘、鼠标,让重复工作更轻松!各种GUI属性、信息轻松获取。
文档结尾有我的使用经历。本文虽由小盆友制作,但制作精良。
先跟大家说一下,我最近在忙C++的事情,导致更新慢甚至不更新,非常抱歉。
注意:实用性考虑,本文主要面向Windows系统,macOS、Linus系统的我还不太了解,粉丝破百后我考虑更新一下。
安装
安装方式很简单,直接使用pip安装即可:
pip install pyautogui
使用清华源安装PyAutoGUI模块(加速安装,同时还能降低安装失败的概率):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
本文绝大部分代码都将模块导入部分删去了,请在你的代码中加入如下代码导入PyAutoGUI模块:
import pyautogui
其他导入方式有:
from pyautogui import *
import pyautogui as gui
暂停和自动防故障装置、注销
如果你的程序出现错误,例如写错了一个坐标、流氓软件弹出了个窗口,且无法使用键盘或鼠标关闭程序。请在(默认为)0.1秒(根据你的pyautogui.PAUSE参数设置的数字,你可以手动更改)内快速将鼠标移动到屏幕的四个角落之一。如果你将pyautogui.FAILSAFE设置为False(默认为True),以上防故障装置会关闭,该方法失效,现在唯一的方法是——注销。Windows操作系统按Ctrl+Alt+Delete屏幕就会变黑,此时程序无法控制鼠标键盘,单击中间的注销按钮即可注销。(注销操作会关闭计算机中的所有程序,建议在注销前保存工作并关闭所有应用程序)
更改pyautogui.PAUSE的代码(0更改为你想要的秒数,int类型或float类型):
pyautogui.PAUSE = 0
关闭防故障装置的代码:
pyautogui.FAILSAFE = False
坐标的概念
屏幕的最左边的最上边(左上角)的坐标是(0,0),向右x坐标递增,向左x坐标递减,向下y坐标递增,向上y坐标递减。屏幕坐标没有负数,都是正整数。
获取屏幕分辨率
建议在代码开头检测屏幕分辨率,若分辨率与你想要的分辨率不一样,就弹出警告窗口等防止代码运行时出现问题。
wh = pyautogui.size() # 返回一个Size对象,比如:Size(width=1920, height=1080)
print(wh[0]) # 输出x坐标
print(wh[1]) # 输出y坐标
print(wh.width) # 输出x坐标
print(wh.height) # 输出y坐标
获取鼠标指针位置
p = pyautogui.position() # 返回Point对象,比如:Point(x=500, y=500)
print(p[0]) # 输出x坐标
print(p[1]) # 输出y坐标
print(p.x) # 输出x坐标
print(p.y) # 输出y坐标
鼠标指针交互
移动鼠标指针
相对于当前位置移动鼠标指针(x、y为整数,正数负数都可以)。其中duration参数是可选的,它表示鼠标移动到这个位置所需要的时间,默认为0,可以为正浮点数或正整数,单位为秒(s)。
pyautogui.move(x, y, duration=time)
用屏幕坐标移动鼠标指针,在move函数后面加上To就是moveTo函数。duration参数与move函数一样
pyautogui.moveTo(x, y, duration=time)
单击/双击鼠标
这个功能有很多效果一样的代码,大家可以根据自己的喜好选择。
左键单击
pyautogui.click(x, y)
pyautogui.click(x, y, button='left')