Pywinauto 简介
Pywinauto 是一个用于自动化 Windows 图形用户界面(GUI)的 Python 库。它允许你通过编程方式控制 Windows 应用程序,模拟用户操作(如点击按钮、输入文本、选择菜单等)。简单来说,它就是让 Python 成为你的'机器人助手',代替鼠标和键盘去操作电脑上的软件。
核心特点
-
跨 GUI 框架支持
- Win32 API (backend='win32'):适用于 MFC、VB6、WinForms 等传统界面。
- MS UI Automation (backend='uia'):适用于 WPF、Qt、Modern UI(UWP)等较新的界面。
-
简单易用的 API
- 支持通过窗口标题、类名、控件类型等属性定位元素。
- 提供类似自然语言的链式调用,例如
window.Edit.type_keys('hello, world')。
-
辅助工具集成
- 推荐使用
inspect.exe或UISpy.exe辅助识别控件属性,方便调试。
- 推荐使用
环境搭建与基础操作
安装依赖
通过 pip 安装即可,无需复杂配置:
pip install pywinauto
安装完成后,建议运行 pip list 确认版本信息。
启动与连接应用
启动新程序
使用 Application.start() 方法可以启动指定的应用程序。路径可以是相对路径,也可以是绝对路径。
from pywinauto.application import Application
# 启动记事本
app = Application(backend='uia').start('notepad.exe')
连接已运行的程序
如果程序已经打开,可以通过进程 ID 或窗口句柄进行连接。
# 通过进程 ID 连接
app = Application(backend='uia').connect(process=12345)
# 通过窗口句柄连接
app = Application(backend='uia').connect(handle=66666)
*注意:实际运行时进程 ID 会变化,调试时请替换为当前真实值。
窗口定位与控制
定位窗口
我们可以结合 print_control_identifiers() 方法打印控件树,协助定位目标窗口。
# 精确匹配标题
win = app.window(title='Hello, Pywinauto! - Notepad')
win = app.window(title_re=)
win = app.window(best_match=)
win = app.window(class_name=)


