pywinauto - Windows GUI 自动化老牌 Python 库

pywinauto - Windows GUI 自动化老牌 Python 库


双后端Win32/UIA双通道,自然属性式语法操控桌面控件,2006年至今仍在维护,测试/RPA/批处理通吃,6.2k Stars

pywinauto 是 Windows GUI 自动化领域最老牌的 Python 库——用 Python 脚本操控 Windows 桌面程序的窗口、对话框和控件,从简单的键鼠模拟到读取控件文本数据都支持。2006 年诞生,至今仍在维护。

核心特点

  • 双后端架构:win32(Win32 API,默认)和 uia(MS UI Automation),后者支持 WPF/现代应用和跨进程操作
  • 语法可读性极强:app.Notepad.Edit.type_keys("...") 这种自然属性式写法,脚本像自然语言
  • 完整控件操作:点击、右键、菜单选择、输入文本、读取数据、控件截图(capture_as_image)
  • 控件树检查:print_control_identifiers() 打印完整控件层级,配合 Spy/Inspect 工具定位元素
  • 跨平台键鼠模块:mouse 和 keyboard 模块在 Windows 和 Linux 都能用
  • Desktop 对象:不依赖进程 ID 操作跨进程弹窗

快速上手

pip install -U pywinauto
from pywinauto.application import Application
app = Application().start("notepad.exe")
app.UntitledNotepad.menu_select("Help->About Notepad")
app.AboutNotepad.OK.click()
app.UntitledNotepad.Edit.type_keys("pywinauto Works!", with_spaces=True)

适用场景

  • Windows 桌面软件自动化测试(QA)
  • 重复性 GUI 操作批处理(表单填写、数据录入)
  • 没有 API 的老软件自动化控制
  • 配合 RPA 流程的桌面端环节

项目数据

  • GitHub 6.2k Stars,最新版 v0.6.9,BSD 3-Clause 协议(0.6.0 起;早期为 LGPL)
  • 纯 Python,依赖 pyWin32 + comtypes
  • 文档齐全(ReadTheDocs),StackOverflow 有专属标签

💡 与 Windows-MCP 的区别:pywinauto 是程序员写脚本的库(确定性、可复用);Windows-MCP 是让 AI Agent 实时操控 Windows(自然语言驱动)。两者可以互补。

12000举报0子龙•1个月前
点击获取 ^_^

暂无评论