简 介:PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能,本文对PyAutoGUI的一些基本功能做一些介绍。
关键词 :
PyAutoGUI、Python
§01 PyAutoGUI功能简介
一、基本功能
- 移动鼠标并在其他应用程序的窗口中单击或键入;
- 向应用程序发送keystrokes(例如,填写表格);
- 截取屏幕截图,并可根据给定的图像(例如,按钮或复选框),在屏幕上找到它;
- 定位应用程序的窗口,并移动、调整大小、最大化、最小化或关闭它(仅限 Windows,目前);
- 在 GUI 自动化脚本运行时显示用于用户交互的消息框。
二、安全设置
??就像巫师学徒的魔法扫帚被编程为不断用水填充(然后过度填充)浴缸一样,程序中的错误可能会使其失控。如果鼠标光标自行移动,则很难使用鼠标关闭程序。
▲ 图1 巫师学徒的魔法扫帚与不断用水填充浴缸
??作为一项安全功能,默认情况下启用故障安全功能。当调用 PyAutoGUI 函数时,如果鼠标位于主监视器的四个角中的任何一个,它们将引发 pyautogui.FailSafeException 。调用每个 PyAutoGUI 函数后都有十分之一秒的延迟,让用户有时间将鼠标猛击到角落以触发故障安全。
??您可以通过设置 pyautogui.FAILSAFE = False 来禁用此故障保护。我强烈建议您不要禁用故障保护。
§02 安装
??在 Windows 上,您可以使用 py.exe 程序运行最新版本的 Python:
??py -m pip install pyautogui
▲ 图2 安装pyautogui
§03 基本功能概览
一、一般功能
1、获取当前鼠标坐标
??pyautogui.position()
2、获取当前屏幕分辨率
??pyautogui.size()
3、判断坐标(x, y)是否在屏幕内
??pyautogui.onScreen(x, y)
▲ 图3.1 一般功能演示结果
二、安全设置
- 在每次 PyAutoGUI 调用后设置 2.5 秒的暂停:
??pyautogui.PAUSE = 2.5
- 当故障安全模式为
True 时,将鼠标移动到左上角将引发一个 pyautogui.FailSafeException 可以中止您的程序(默认情况下启用FAILSAFE = True ):
??pyautogui.FAILSAFE = True
三、鼠标功能
1、移动、拖动鼠标
??XY 坐标在屏幕左上角有 0, 0 原点。 X 向右增加,Y 向下增加。如果 duration 为 0 或未指定,则立即移动。**注意:**在 Mac 上不能立即拖动。
(1)在 num_second 秒内将鼠标移动到 XY 坐标
??pyautogui.moveTo(x, y, duration=num_seconds)
(2)相对于当前位置移动鼠标
??pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)
(3)将鼠标拖到 XY
??pyautogui.dragTo(x, y, duration=num_seconds)
(4)相对于其当前位置拖动鼠标
??pyautogui.dragRel(xOffset, yOffset, duration=num_seconds)
2、点击鼠标
(1)总函数click()
??调用 click() 只需在鼠标当前位置用左键单击鼠标一次,但关键字参数可以改变这一点:
??pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
??button 关键字参数可以是'left' 、'middle' 或'right' 。
(2)独立函数
??所有的点击都可以用 click() 来完成,但下面这些函数的存在是为了便于阅读。关键字参数是可选的:
??pyautogui.rightClick(x=moveToX, y=moveToY) (右键)
??pyautogui.middleClick(x=moveToX, y=moveToY) (点击滚轮)
??pyautogui.doubleClick(x=moveToX, y=moveToY) (双击)
??pyautogui.tripleClick(x=moveToX, y=moveToY) (三连击)
(3)其他功能
??可以单独调用单个按钮按下和抬起事件:
??pyautogui.mouseDown(x=moveToX, y=moveToY, button='left')
??pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')
3、滚动滚轮
??正向滚动将向上滚动,负向滚动将向下滚动:
??pyautogui.scroll(amount_to_scroll, x=moveToX, y=moveToY)
四、键盘功能
五、消息框功能
六、截图功能
|