基于办公操作中简单重复性劳动,利用pyautogui库通过截图识别对按键位置进行定位,模拟鼠标、键盘点击,实现无脑的自动化操作。单一性对应性操作程序已经完成,现做制作过程中记录整理。
一、控制程序
1、pyautogui.FAILSAFE =False
默认为True, 代表当鼠标的指针在屏幕的最左上方,程序会报错停止,False关闭该功能
2、pyautogui.PAUSE = 1
所有的pyautogui指令都要间隔一秒执行
二、识别图像
pyautogui简答操作没有问题,如果使用 识别图像功能,需要安装opencv-python、pillow库,否则无法正常使用,打包成exe需要注意numpy库和opencv-python库版本需要匹配,不是最新版就对了,需要相互适应。即:
1、pyautogui.locateOnScreen('1.png', confidence=0.8)
# 获取显示屏界面与图片1极其相似的图片x轴,y轴,图片长度,图片高度值,即该图片位置和大小;confidence代表置信区间,简单点理解是可适配度,允许找出的图片和要求图片有一定差异。从0.1-1,值越大差异就要求的越小,1代表基本就是一致。
2、pyautogui.locateAllOnScreen('2.png', confidence=0.8)
#获取显示屏界面与图片1极其相似的图片x轴,y轴,图片长度,图片高度值的列表list,界面相似的图都会找出来。
三、定位和移动
1、pyautogui.center((left, top, width, height))
#获取图片的中心点返回值是(x轴,y轴)元组,left, top, width, height代表图片x轴,y轴,图片长度,图片高度值(即该图片位置和大小)
2、pyautogui.moveTo(100,300,duration=1)
#鼠标移动至x轴100,y轴300,(0,0)为左上角,下为x轴增加,左为y轴增加。duration是设置移动时间(上图即1秒内移动至对应位置),pyautogui模块都有这个属性。
3、pyautogui.moveRel(100,200,duration=1)
#鼠标向下移动100像素,向左移动200像素
4、pyautogui.position()
#获取鼠标定位
四、鼠标点击
1、pyautogui.click(100,300,button='middle',duration=1)
# 鼠标移至(100,300)点击,button有3种('left','right','middle')代表左键、右键、中间键
2、pyautogui.doubleClick(100,100,duration=1)
#鼠标双击左键
3、pyautogui.dragTo(100,200,duration=1)
#鼠标按住拖动至(100,200)
4、pyautogui.dragRel(100,200,duration=1)
#鼠标按住向下100像素,下左200像素拖动
五、键盘输入
1、pyautogui.typewrite('hello',0.5)
#键盘输入hello字符串,每个字符间隔0.5秒
2、pyautogui.hotkey('ctrl','c')
#快捷键操作,ctrl+c模拟复制