当前位置: 首页 > news >正文

pywinauto-打开程序+连接已打开的程序

一、安装pywinauto

1.安装最新版本

//安装最新版本 pip install pywinauto

2.安装指定版本

//安装指定版本 pip install pywinauto==0.6.9

3.安装成功标志

第一步查看:

第二步查看:

1.

2.

3.

二、打开程序

1.建一个python文件

2.打开应用程序的语法

a.导入库

from pywinauto.application import Application

b.标准语法

# win32 后端 app = Application(backend="win32").start("exe路径") # uia 后端 app = Application(backend="uia").start("exe路径")

案例1-在环境路径中配置好了:

from pywinauto.application import Application # 用win32后端启动记事本(标准写法,可直接运行) app = Application(backend="win32").start("notepad.exe") # 用uia后端启动记事本(标准写法,可直接运行) app = Application(backend="uia").start("notepad.exe")

案例2-绝对路径

from pywinauto.application import Application # win32 后端(传统程序用) app_win32 = Application(backend="win32").start("C:\Windows\System32\notepad.exe") # uia 后端(现代程序用) app_uia = Application(backend="uia").start("C:\Windows\System32\notepad.exe")

补充:win32 和 uia的区别

1. 核心定位不一样 - win32 后端:是 Windows 很早就有的一套自动化接口,属于“老派方案”,主要给早期的老式程序用,比如用 VB、MFC、Delphi 写的软件。 - uia 后端:是微软后来推出的新一代自动化接口,专门给现代程序设计,比如 Qt、WPF、.NET、新版 Office、浏览器这类。 2. 控件识别能力不同 - win32:识别逻辑很简单,只能靠窗口句柄、类名和标题来定位控件。对传统的、结构简单的控件很稳,但对现代软件里的自定义控件、复杂布局,基本“看不见”,比如 Qt 写的按钮、列表,它经常识别失败。 - uia:能穿透现代UI框架,深入识别控件的属性、层级和状态,哪怕是复杂的自定义控件,也能精准定位,兼容性比 win32 强很多。 3. 适用场景不一样 - win32 适用:电脑自带的老版记事本、计算器,还有十几年前开发的老软件。 - uia 适用:现在大部分新软件,包括你用 Qt 写的音乐播放器、新版 Windows 自带程序、浏览器、Office 等,都是用这个。 4. 实战里怎么选? - 写自动化脚本时,优先试 uia,现在绝大多数场景都能用它搞定。 - 如果 uia 识别不到控件,再换成 win32 试,比如遇到非常老的程序时,win32 反而更稳定。

三、连接已经打开的应用程序+用进程id

a.导入库

from pywinauto.application import Application

b.标准语法

# 按进程PID连接已运行程序 app = Application(backend="uia").connect(process=PID数值)

补充其他的语法connect:

python from pywinauto import Application # 基础格式:指定后端 + connect() 连接已运行程序 # 后端可选:uia / win32 # 1. 按进程PID连接 app = Application("uia").connect(process=PID值) app = Application("win32").connect(process=PID值) # 2. 按窗口标题匹配 app = Application("uia").connect(title="完整标题") # 精确匹配 app = Application("uia").connect(title_re="标题关键词") # 正则模糊匹配 # 3. 按窗口类名匹配 app = Application("uia").connect(class_name="类名") # 精确匹配 app = Application("uia").connect(class_name_re="类名关键词")# 正则模糊匹配 # 4. 按窗口句柄连接 app = Application("uia").connect(handle=句柄数值) # 5. 多条件组合匹配 app = Application("uia").connect(title="标题", class_name="类名") # 6. 附加通用参数(超时、是否仅可见窗口) app = Application("uia").connect(process=PID值, timeout=10, visible_only=True)

c.进程id查看方法-任务管理器/UI Spy

Ctrl + Shift + Esc 直接弹出任务管理器,不用多一步,日常和卡死时都好用。 其他常用 - Ctrl + Alt + Del → 选“任务管理器” - Win + X → 按 T - 任务栏空白处 → 右键 → 任务管理器 - Win+R → 输入 taskmgr 查 PID,直接用 Ctrl+Shift+Esc 最快。

d.UI Spy 下载使用(后面出一个,这里不讲)

e.案例

from pywinauto.application import Application app = Application("uia").connect(process=1234)

联合使用案例:

import time from pywinauto.application import Application # 1. 启动应用程序(记事本) Application(backend="uia").start("notepad.exe") time.sleep(3) # 等待程序加载完成 # 2. 连接到已启动的记事本窗口 app = Application(backend="uia").connect(title_re=".*Notepad") # 3. 获取窗口对象 notepad = app.window(title_re=".*Notepad") # 4. 操作控件:在文本编辑区域输入内容 notepad.Document.type_keys("Hello, Pywinauto!") # 5. 关闭应用程序 notepad.close()

喜欢这篇笔记的宝子,记得一键三连哦,你们的鼓励是我更新的最大动力。

http://www.jsqmd.com/news/901399/

相关文章:

  • 巨有科技:乡村市集的 “在地化” 密码——跳出同质化,做有根的烟火气
  • 告别RAM焦虑:手把手教你用Vitis SDK为MicroBlaze制作QSPI Flash启动的Bootloader
  • Cadence CIS库添加元件不显示?手把手教你排查SPB17.4配置的5个关键点
  • 别再只调颜色了!Echarts地图的visualMap组件,这5个隐藏功能让你的数据可视化更专业
  • 阿波罗11号代码考古:从历史源码看嵌入式系统的并发隐患与设计权衡
  • 2026年活动隔断/玻璃隔断/铝合金隔断/办公隔断厂家推荐榜:宴会厅隔断与医院移动隔断墙的匠心之选 - 品牌企业推荐师(官方)
  • AI如何重塑2026年Web开发:从意图驱动到智能工具链
  • 2026年镭雕粉与钛白粉供应厂家实力精选:东莞成硕塑料的深度观察 - 品牌企业推荐师(官方)
  • 从资助到投资:构建数据驱动的价值转化模型与自动化管道
  • 2026年SaaS构建成本全解析:AI辅助、外包与无代码路径深度对比
  • 从聊天机器人到AI操作系统:核心技术架构与应用场景深度解析
  • DeeplabV3+语义分割实战:如何用Keras在Colab上免费跑通你的第一个分割项目?
  • Ubuntu 18.04无线网卡驱动安装避坑指南:从lspci查型号到github找r8168驱动
  • 2026生产级AI智能体工程化实战:可观测性、评估体系与部署循环构建指南
  • AI原生运维操作系统:重构SRE工作流,实现智能告警与自动化
  • 计算机网络:让电脑们“聊天“的神奇大世界
  • 免费线上投票小程序教你快速创建投票活动(云帆投票操作指南) - 投票小程序
  • 避坑指南:SARScape做SBAS-InSAR时,GCP控制点怎么选?反演参数如何调?
  • C++ -- lambda捕获
  • Make-it:基于领域知识层的AI硬件方案生成工具,降低DIY门槛
  • 不止于折线图:用Stata的twoway rcap玩转分类数据的可视化呈现
  • 从数据集到芯片:决策树模型自动化ASIC设计全流程解析
  • 量子储层GAN:NISQ时代的机器学习新突破
  • MCP服务器监控实战:像API一样构建可观测性体系
  • MVP开发成本全解析:从概念到实战的精准预算指南
  • 解决EPSON RC+ 7.0编程编译报错:从‘Integer i’到‘Jump daiji’的实战排错指南
  • 从自定义Agent到技能封装:AI工程化的高效实践路径
  • Windows安全中心“好心办坏事”?MsMpEng.exe进程深度解析与USB弹出冲突的幕后真相
  • 告别命令盲敲!用VS Code图形化界面搞定华为云Git代码上传
  • 一次真实体验:我对 CSDN AI 数字营销功能的几点感受