自动化工具 活跃维护

pywinauto

pywinauto/pywinauto

使用 Python 进行 Windows GUI 自动化(基于文本属性)

6205
Stars 标星
788
Forks 分支
172
Watchers 关注
537
Open Issues
Python
主要语言
BSD-3-Clause
开源协议
26.5 MB
仓库大小
4 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:pywinauto/pywinauto
git clone https://github.com/pywinauto/pywinauto.git
git clone git@github.com:pywinauto/pywinauto.git
README.md master

英文原文正文为项目原始 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

文档 / 帮助

简单示例

它很简单,并且生成的脚本非常易读。到底有多简单?

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() 方法对控件进行截图。

运行单元测试所需的软件包

运行所有测试: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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。