英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
pywinauto
pywinauto 是一组用于自动化 Microsoft Windows GUI 的 Python 模块。最简单的情况下,它允许你向窗口对话框和控件发送鼠标和键盘操作,但它也支持更复杂的操作,例如获取文本数据。
底层支持的技术:Win32 API(backend="win32"; 默认使用)、MS UI Automation(backend="uia")。用户输入模拟模块 mouse 和 keyboard 可在 Windows 和 Linux 上使用。
喜欢吗?
只需给仓库加星或者捐赠。
你的帮助很宝贵,因为这是我们所有人的一个业余项目:我们在下班时间进行新功能开发。
- 总体而言,该库 未来倾向于跨平台(Linux 在 2018,macOS 在 2019)。
- 可靠的基于文本的 “录制-回放” 生成器也是正在开发的高优先级功能。
- 更多功能请求和讨论欢迎在 问题 中提出。
安装
pip
执行 pip install -U pywinauto
conda
执行 conda install -c conda-forge pywinauto
文档 / 帮助
- 在 ReadTheDocs 上的简要介绍
- 入门指南(核心概念, Spy/Inspect 工具等)
- StackOverflow 标签 提问
- 邮件列表
简单示例
它很简单,并且生成的脚本非常易读。到底有多简单?
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)
MS UI 自动化示例
针对 explorer.exe 的更详细示例:
from pywinauto import Desktop, Application
Application().start('explorer.exe "C:\\Program Files"')
# connect to another process spawned by explorer.exe
# Note: make sure the script is running as Administrator!
app = Application(backend="uia").connect(path="explorer.exe", title="Program Files")
app.ProgramFiles.set_focus()
common_files = app.ProgramFiles.ItemsView.get_item('Common Files')
common_files.right_click_input()
app.ContextMenu.Properties.invoke()
# this dialog is open in another process (Desktop object doesn't rely on any process id)
Properties = Desktop(backend='uia').Common_Files_Properties
Properties.print_control_identifiers()
Properties.Cancel.click()
Properties.wait_not('visible') # make sure the dialog is closed
依赖项(如果手动安装)
- Windows:
- Linux:
- 可选软件包:
- 安装 Pillow(通过
pip install -U Pillow)以便能够调用capture_as_image()方法对控件进行截图。
- 安装 Pillow(通过
运行单元测试所需的软件包
运行所有测试:python ./pywinauto/unittests/testall.py
贡献
非常欢迎提交 pull requests。阅读 贡献指南 获取有关单元测试、编码规范等的更多详细信息。
版权
用于原生 Windows GUI 的 Pywinauto 最初由 Mark Mc Mahon 编写。Mark 利用 Python 的强大功能将许多优秀的想法变为现实。进一步的贡献者受到其良好 API 的启发,使开发持续进行。
从 0.6.0 开始,pywinauto 在 BSD 3-clause 许可证下发布。Pywinauto 0.5.4 及以前版本在 LGPL v2.1 或更高版本下发布。
- © 开源社区, 2015-2018(0.6.0 开发)
- © 英特尔公司, 2015(0.5.x 维护)
- © Michael Herrmann, 2012-2013(0.4.2)
- (c)Mark Mc Mahon,2006-2010(0.4.0 及以前)
- 本文标题:pywinauto - 使用 Python 进行 Windows GUI 自
- 本文链接:https://cn121.com/automation/pywinauto-pywinauto.html
- 原项目:pywinauto/pywinauto 版权归原作者 pywinauto 及贡献者所有
- 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 BSD-3-Clause(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 pywinauto/pywinauto。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。