1. PyAutoGUI(最通用、入门首选)
定位:全平台键鼠+屏幕模拟自动化
核心能力
模拟鼠标:移动、单击、双击、拖拽
模拟键盘:按键、组合键、输入文字
屏幕截图、像素定位、简单弹窗
优势
上手极快,代码极简
跨 Windows/macOS/Linux
不需要窗口句柄、控件知识
缺点
基于屏幕像素坐标,窗口一动就失效
只能前台操作,不能后台运行
高DPI、缩放屏幕容易错位
游戏/防护软件易屏蔽
2. Pywinauto(Windows 原生程序神器)
定位:专门针对 Windows 原生窗口/控件自动化
核心能力
按窗口名、类名定位程序
直接操作控件:按钮、输入框、菜单、复选框
支持后台操作、窗口最小化也能运行
获取控件文本、状态
优势
不依赖坐标,稳定、精准
对系统软件、Office、MFC、Win32 程序支持极好
缺点
只支持 Windows
对 Electron、Qt、网页套壳软件支持差
学习成本比 PyAutoGUI 高
3. pywin32 (win32api / win32com)
定位:Windows 底层 API 调用库
核心能力
调用 Windows 原生 API:进程、窗口、注册表、服务
操作 COM 组件:自动化 Excel、Word、Outlook
窗口句柄、剪切板、系统消息
优势
功能最强大,几乎能做任何系统级操作
可控性极强,适合专业脚本
缺点
纯底层,语法繁琐
需要懂 Windows API 原理
代码量大,不适合快速写小工具
4. PyDirectInput(PyAutoGUI 升级版)
定位:低级别键鼠模拟,专门解决“被屏蔽”问题
核心能力
硬件级鼠标键盘输入
优势
能绕过部分游戏/软件反作弊
无 DPI 错位问题,响应更快
缺点
仅键鼠模拟,无控件操作、无截图
功能单一,只适合输入模拟
5. SikuliX + Python API(图像识别自动化)
定位:看图操作,不依赖控件/坐标
核心能力
截图匹配 → 找到按钮/区域 → 点击/输入
优势
任何看得到就能点:游戏、自定义UI、无控件界面
不关心程序用什么框架写的
缺点
分辨率/主题一变就失效
速度慢,依赖图片素材
准确率受画面影响大
6. Appium(Windows 桌面版)
定位:企业级、大型自动化测试框架
核心能力
支持 Windows 桌面应用元素定位
可做自动化测试、流程自动化、批量操作
优势
适合大型项目、稳定可维护
支持日志、报告、多设备
缺点
很重,需要安装服务、配置环境
个人小脚本完全没必要
快速选型建议
随便写个小工具、点来点去 → PyAutoGUI
自动化系统软件/Office/固定窗口 → Pywinauto
操作Excel/Word/注册表/底层系统 → pywin32
游戏/防屏蔽输入 → PyDirectInput
界面无控件、只能看图操作 → SikuliX
公司级自动化测试 → Appium