当前位置: 首页 > 科技观察

PyAutoGUI:自动化键盘鼠标操作的Python类库

时间:2023-03-14 15:55:35 科技观察

有些朋友可能玩过KeyWizard,一个用来操作键盘鼠标完成一些自动化任务的软件。其实学Python的话,根本就不需要keysprite之类的东西。因为在庞大的Python类库中,有PyAutoGUI,它可以变成一个控制键盘鼠标的类库。有了它,你就可以随心所欲地使用Python来操作电脑了。而且这个类库是跨平台的,Windows、Linux、macOS都可以用,是不是很吸引人呢?安装和使用安装PyAutoGUI非常简单,直接从pip安装即可。pipinstallpyautogui这里顺便介绍一下PyAutoGUI的坐标系,和一些常见的绘图坐标系是一样的。左上角为原点,向右为x轴正向,向下为y轴正向。如果你的屏幕是1920*1080,那么右下角的坐标就是(1919,1079),因为坐标是从0开始的,而不是1,所以这个要特别注意。PyAutoGUI虽然函数很多,但是函数的作用基本都是点击/双击鼠标,点击/按下/弹出按钮,函数参数都是点击间隔,点击按钮等非常简单的参数。所以我就不列举例子了,总之使用起来非常简单。功能介绍下面介绍一下PyAutoGUI的功能。先来看看鼠标的操作功能,主要是点击、拖动、滑动滚轮。键盘操作功能主要是按键和组合键的操作。提示框功能可用于显示警告、确认、提示和密码输入对话框,增强程序的可操作性。显示对话框时,程序会暂停,直到用户处理该对话框。截图功能可以对屏幕进行截图,也可以根据已有图片从屏幕中定位。主要目的是预先保存一些按钮图片,然后从屏幕上识别出点击按钮的位置。操作示例首先,让我们看一下官方网站上的绘图示例。我们需要打开一个绘图程序窗口并将其置于全屏状态。然后运行下面的代码并切换到绘图窗口。等待3秒后,可以看到PyAutoGUI开始绘图了。importpyautoguidistance=100pyautogui.moveTo(400,300)whiledistance>0:pyautogui.drag(距离,0,duration=0.1)distance-=5pyautogui.drag(0,distance,duration=0.1)pyautogui.drag(-distance,0,duration=0.1)distance-=5pyautogui.drag(0,-distance,duration=0.1)结果如下。其实这个画图的代码很简单,就是一张一张的缩小,然后调用拖动函数拖动画笔并按住。让我们看一个图像识别的例子。本例需要先安装OpenCV库和opencv-python包。安装后,您可以运行以下示例。本例保存Windows10电脑的几个按钮截图,然后通过图形识别找到并点击按钮进行操作。注意下面使用了confidence参数,即使图片不完全匹配也能识别。importpyautoguiimporttime.sleep(3)#Windows计算器按钮截图five='5.png'eight='8.png'multiply='multiply.png'equals='equals.png'#图像识别和点击函数deffind_and_click(image):x,y=pyautogui.locateCenterOnScreen(image,confidence=0.9)pyautogui.click(x,y)#execute5*8=find_and_click(five)find_and_click(multiply)find_and_click(eight)find_and_click(equals)代码和图片一个完整的例子可以在我的github上找到,地址如下。https://github.com/techstay/python-study/tree/master/pyautogui-sample通过PyAutoGUI,可以轻松实现图形界面的自动化编程,根据屏幕位置或图像识别定位控件的位置,然后编程控制鼠标和键盘输入。这与按钮向导相同。但是Python可以使用范围广泛的第三方包来实现更多的功能,这是KeyWizard无法比拟的。