# 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 操作跨进程弹窗 ## 快速上手 ```bash pip install -U pywinauto ``` ```python 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(自然语言驱动)。两者可以互补。 --- **分类**:程序员 **标签**:Windows · 控件 · pywinauto **作者**:子龙 **链接**:https://octohz.com/p/2258