PyAutoGUI 使用详解

文章目录

简介

PyAutoGUI 是一个用于自动化控制鼠标和键盘的 Python 库。它可以帮助开发者编写脚本,以模拟用户在计算机上的操作,适用于自动化任务、测试和游戏辅助等场景。

官网链接:PyAutoGUI Documentation

PyAutoGUI 的原理

PyAutoGUI 的工作原理是通过操作系统提供的 API 来模拟用户的鼠标和键盘输入。它支持跨平台操作,包括 Windows、macOS 和 Linux。PyAutoGUI 提供了许多方便的函数,可以用来移动鼠标、点击、拖拽、键盘输入、截屏等。

安装 PyAutoGUI

使用 pip 可以轻松安装 PyAutoGUI:

bash 复制代码
pip install pyautogui

此外,某些功能(如截屏和图像识别)需要额外的依赖库,可以通过以下命令安装:

bash 复制代码
pip install pillow opencv-python

基本使用示例

以下是一些常见的 PyAutoGUI 用法示例:

鼠标控制

python 复制代码
import pyautogui

# 移动鼠标到屏幕坐标 (100, 200)
pyautogui.moveTo(100, 200)

# 从当前位置移动鼠标,相对移动 (x, y)
pyautogui.moveRel(50, 50)

# 点击鼠标左键
pyautogui.click()

# 双击鼠标左键
pyautogui.doubleClick()

# 右键点击
pyautogui.rightClick()

# 拖拽鼠标
pyautogui.dragTo(300, 400, duration=2)  # 拖动到 (300, 400) 位置,持续2秒

键盘控制

python 复制代码
# 输入文本
pyautogui.write('Hello, World!')

# 按下并释放按键
pyautogui.press('enter')

# 组合按键
pyautogui.hotkey('ctrl', 'c')  # 模拟 Ctrl+C 组合键

截屏

python 复制代码
# 截取整个屏幕
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')

# 截取特定区域
region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400))
region_screenshot.save('region_screenshot.png')

图像识别

python 复制代码
# 查找屏幕上的图像
location = pyautogui.locateOnScreen('button.png')
if location:
    pyautogui.click(location)

消息框

python 复制代码
# 显示消息框
pyautogui.alert('This is an alert box.')

# 输入框
user_input = pyautogui.prompt('Enter your name:')
print(f'User entered: {user_input}')

高级功能

防止误操作

为了防止脚本失控,PyAutoGUI 提供了一些安全功能:

  • failsafe:默认情况下,如果鼠标移动到屏幕左上角,PyAutoGUI 操作会立即停止。
  • pause:在每个 PyAutoGUI 函数调用后自动暂停一段时间,默认值为 0.1 秒。
python 复制代码
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1  # 每个操作后暂停 1 秒

多屏幕支持

PyAutoGUI 支持多屏幕,可以获取所有屏幕的尺寸:

python 复制代码
screens = pyautogui.screenshot().size()
print(screens)

鼠标平滑移动

使用 moveTomoveRel 函数的 duration 参数,可以让鼠标平滑移动到目标位置:

python 复制代码
pyautogui.moveTo(500, 500, duration=2)  # 在2秒内平滑移动到 (500, 500)

结论

PyAutoGUI 是一个强大且易于使用的库,适用于各种自动化任务。无论是简单的鼠标和键盘操作,还是复杂的图像识别和脚本编写,PyAutoGUI 都能提供灵活的解决方案。通过学习和掌握 PyAutoGUI,可以大大提高工作效率和自动化程度。

更多详细信息和高级用法,请参阅 PyAutoGUI 官方文档

相关推荐
站大爷IP22 分钟前
基于PySide6的聚合翻译软件设计与实现
python
灏瀚星空33 分钟前
从基础到实战的量化交易全流程学习:1.2 金融市场基础
笔记·python·信息可视化·系统架构·开源
用户27784491049931 小时前
Python打造Excel记账模板,摸鱼时间也能轻松理财
人工智能·python
闲人编程1 小时前
OpenCV图像矩与形状匹配完全指南
python·opencv·图像识别
一个天蝎座 白勺 程序猿2 小时前
Python爬虫(8)Python数据存储实战:JSON文件读写与复杂结构化数据处理指南
爬虫·python·json
q_q王2 小时前
dify对接飞书云文档,并且将图片传入飞书文档
python·大模型·飞书·dify·智能体·图片展示
noravinsc2 小时前
django filter 排除字段
后端·python·django
zandy10113 小时前
嵌入式BI开发指南:如何通过衡石API将分析能力集成到业务系统?
开发语言·python·嵌入式
曲幽3 小时前
零基础快速搭建AI绘画网站!用Gradio玩转Stable Diffusion
python·ai作画·stable diffusion·gradio·diffusers·webui
2401_890665863 小时前
免费送源码:Java+ssm+HTML 三分糖——甜品店网站设计与实现 计算机毕业设计原创定制
java·python·微信小程序·html·php·课程设计·android-studio