核心用法
PyAutoGUI 键鼠控制技能是一套基于 Python 的跨平台自动化工具集,覆盖 Windows、Linux、macOS 三大操作系统。核心能力分为四大模块:
1. 键鼠控制 —— 通过 keyboard_mouse.py 实现精确的鼠标移动、点击、拖拽、滚动,以及键盘按键、组合键、文本输入。支持绝对坐标定位和持续时间控制,可模拟完整的用户交互流程。
2. 屏幕操作 —— 提供全屏截图、实时获取鼠标位置、查询屏幕分辨率等功能,为自动化流程提供视觉反馈和坐标校准基础。
3. 图片处理 —— 集成 Pillow 库,支持获取图片元信息(尺寸、格式、文件大小)、按坐标裁剪区域,并可将处理结果用于后续自动化决策。
4. 可视化标记 —— 独创的双轨标记系统:屏幕实时绘图(draw_overlay.py)用于坐标调试,图片永久标记(draw_on_image.py)用于生成参考文档。支持十字、圆圈、箭头、靶心、区域框等多种标记样式,配合颜色与文字标注。
此外,技能内置文件清理工具(cleanup.py),可自动管理截图与标记文件的生命周期,避免磁盘空间膨胀。
显著优点
- 跨平台一致性:统一 API 覆盖三大桌面系统,降低多环境部署成本
- 人机协作设计:屏幕实时标记功能弥补纯代码自动化的"黑盒"缺陷,调试直观
- 成本优化策略:文档明确区分"屏幕绘图"(实时但费钱)与"图片绘制"(批量省钱),提供校准流程最佳实践
- 安全机制:内置紧急停止(鼠标移至左上角触发),降低自动化失控风险
- 模块化架构:6 个独立脚本可按需调用,避免过度依赖
潜在局限
- Wayland 兼容性:Linux 环境下需要 X11,现代 Wayland 桌面可能无法使用
- 权限门槛:macOS 需手动授予辅助功能权限,Windows 部分场景需管理员权限
- 坐标硬编码依赖:绝对坐标方案对分辨率变化、DPI 缩放、多显示器环境敏感
- 无图像识别能力:仅能按坐标操作,不具备 CV 元素识别(需配合其他工具)
- 单线程阻塞:基于 PyAutoGUI 的同步执行特性,不适合高并发场景
适合人群
- QA 工程师:构建跨平台 UI 自动化测试套件
- 运维人员:批量执行重复性界面操作、RPA 轻量替代
- 开发者:快速原型验证、坐标校准、界面调试辅助
- 技术爱好者:学习自动化原理、探索 PyAutoGUI 能力边界
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 误操作风险 | 自动化脚本可能点击错误位置导致数据丢失 | 操作前强制延迟、分步确认、保留屏幕标记验证环节 |
| 权限滥用 | 辅助功能/管理员权限可能被恶意利用 | 审查脚本来源、限制运行环境、避免处理敏感输入场景 |
| 坐标漂移 | 分辨率/DPI 变化导致预设坐标失效 | 运行前检测屏幕尺寸、采用相对坐标或图像识别补偿 |
| 进程僵死 | 绘图窗口未及时关闭造成资源占用 | 严格控制 `--duration` 参数、配合清理工具定期维护 |
| 隐私泄露 | 截图可能包含敏感界面信息 | 及时清理、避免在含密码/密钥界面执行截图 |