基于办公操作中简单重复性劳动,利用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模拟复制