在上一篇文章中,我们学会了用UISpy 工具定位界面元素,也彻底搞懂了哪些软件能做自动化、哪些不能。
今天直接进入实战环节 ! 我们用Windows 自带的记事本(Notepad) 作为第一个练手项目,带你写出人生中第一个 GUI 自动化脚本。
代码超级简单,全程不到 10 行,看完就能直接跑通!
一、本篇你能学到什么
- 用 Pywinauto 启动应用程序
- 用 Pywinauto 连接已打开的窗口
- 用 Pywinauto 获取窗口对象
- 用 Pywinauto 在输入框输入文本
- 用 Pywinauto 关闭窗口
真正做到:启动 → 操作 → 关闭 完整自动化流程。
二、准备工作
- 已安装 Python 3.7+
- 已安装 pywinauto 0.6.9
- 电脑是 Windows 系统(自带记事本)
三、完整自动化代码(可直接复制运行)
python
# 导入时间模块
import time
# 从 pywinauto 导入核心类 Application
from pywinauto import Application
# 1. 启动记事本(使用uia模式,适配现代应用)
Application(backend="uia").start("notepad.exe")
time.sleep(3) # 等待程序启动完成
# 2. 连接已经打开的记事本窗口(模糊匹配标题:包含"记事本"即可)
app = Application(backend="uia").connect(title_re=".*记事本")
# 3. 获取主窗口
notepad = app.window(title_re=".*记事本")
# 4. 在编辑框中输入文本
notepad.Edit.type_keys("Hello, Pywinauto!我是自动化脚本!")
# 5. 关闭记事本
notepad.close()
运行效果: 自动打开记事本 → 自动输入文字 → 自动关闭记事本 全程不需要你动鼠标键盘!
四、逐行代码讲解(超易懂)
1. 启动应用程序
Application(backend="uia").start("notepad.exe")
backend="uia":使用现代 UI 模式,最稳定start("notepad.exe"):启动记事本程序- 这一行 = 你双击打开记事本
2. 等待程序加载
time.sleep(3)
给系统 3 秒时间启动记事本,避免脚本运行太快导致找不到窗口。
3. 连接已打开的窗口
app = Application(backend="uia").connect(title_re=".*记事本")
connect():连接一个已经运行的程序title_re=".*记事本":模糊匹配窗口标题,只要标题包含 "记事本" 就能找到
4. 获取窗口对象
notepad = app.window(title_re=".*记事本")
拿到记事本主窗口,后续所有操作都基于这个窗口。
5. 输入文本
notepad.Edit.type_keys("Hello, Pywinauto!")
Edit:记事本的输入框控件名(pywinauto 内置识别)type_keys():模拟键盘输入文字
6. 关闭窗口
notepad.close()
自动关闭记事本,完成整个自动化流程。
五、这个示例为什么适合新手?
- 不需要安装任何软件(记事本系统自带)
- 不需要 UISpy 工具查控件(Edit 是通用控件)
- 代码短、逻辑清晰
- 成功率 100%
- 能立刻看到自动化效果,成就感超强
六、你可以自己尝试的小练习
把输入内容改成你想输入的文字:
notepad.Edit.type_keys("我正在学习Pywinauto自动化!")
再试试多行输入:
notepad.Edit.type_keys("第一行内容{ENTER}第二行内容{ENTER}第三行来啦!")
{ENTER} = 回车键
七、下一篇内容预告
下一篇我们将学习:
- 打开计算器自动计算
- 使用UISpy 工具精准定位控件
- 点击按钮、获取结果、模拟更多真实操作
- 写出更专业的自动化脚本
总结(本篇核心)
- 启动应用 :
start(程序路径) - 连接应用 :
connect(title_re=".*标题") - 获取窗口 :
window() - 操作控件 :
控件.type_keys(内容) - 关闭窗口 :
close()