You need to enable JavaScript to run this app. 如何使用pywinauto读取Edit类UI控件中的文本内容
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pywinauto读取Edit类UI控件中的文本内容

pywinauto 获取K-IDE终端富文本内容并保存的实现方案

前置说明

你已经通过py_inspect定位到目标富文本控件的前提下,可直接按以下步骤实现:


完整实现代码示例

# 导入pywinauto核心模块
from pywinauto import Application

# 1. 连接到已运行的K-IDE进程
# 可替换为你实际的K-IDE窗口标题匹配规则,也可以用process参数指定进程ID
app = Application(backend="win32").connect(title_re=".*K-IDE.*")

# 2. 定位到目标富文本控件
# 请替换括号内的属性值为你在py_inspect中查到的对应控件属性
# 常用定位属性:class_name(控件类名)、control_id(控件ID)、control_type(控件类型)
terminal_ctrl = app.window(title_re=".*终端.*").child_window(
    class_name="你查到的富文本控件类名",
    control_id=你查到的控件ID
)

# 校验控件是否定位成功
if not terminal_ctrl.exists(timeout=3):
    raise Exception("目标富文本控件未找到,请检查定位属性是否正确")

# 3. 获取rich_text属性内容
rich_content = terminal_ctrl.rich_text()
# 如果你只需要纯文本内容不需要富文本格式,可替换为:rich_content = terminal_ctrl.text()

# 4. 写入本地文本文件
with open("k_ide_terminal_response.txt", "w", encoding="utf-8") as f:
    f.write(rich_content)

常见问题排查

  • 若调用rich_text()返回空值:先打印terminal_ctrl.print_control_identifiers(),确认当前定位到的控件是否为你要找的目标控件
  • 若提示控件无rich_text属性:确认连接时backend参数是否设置为win32,如果用的是uia后端,可替换调用terminal_ctrl.text_block()获取内容
  • 若保存的文件中文乱码:将open方法的encoding参数替换为gbk重试,部分工业IDE默认使用gbk编码输出内容

内容的提问来源于stack exchange,提问作者Om Shridhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 20:15:04