You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pywinauto的print_control_identifiers仅识别窗口标题的问题求助

解决pywinauto print_control_identifiers仅显示标题的问题

针对你遇到的问题,可以按以下步骤排查解决:

  • 确认窗口捕获的准确性
    先检查是否真的定位到了目标窗口:

    from pywinauto import Desktop
    # 列出所有可见窗口的标题,确认目标窗口的完整标题
    for w in Desktop(backend="uia").windows():
        print(w.window_text())
    

    如果找到的标题和你写的不完全一致(比如有额外后缀),改用正则匹配:

    dlg = Desktop(backend="uia").window(title_re=r".*discord\.gg/asakin.*")
    
  • 改用应用实例自身的窗口对象
    不要用Desktop()跨应用找窗口,直接用启动后的app实例定位,同时增加等待确保窗口加载完成:

    from pywinauto import Application
    # 启动时指定uia后端
    app = Application(backend="uia").start(r"C:\Users\user\Desktop\Pandora_v2.0\Pandora v2.0.exe")
    # 等待窗口可见,超时15秒
    dlg = app.window(title="discord.gg/asakin").wait('visible', timeout=15)
    dlg.print_control_identifiers()
    
  • 检查应用UI框架与控件层级
    如果是Electron或类似Web技术构建的应用,主窗口可能只是容器,需要查看子控件:

    # 列出所有直接子控件
    for child in dlg.children():
        print(child.window_text(), child.control_type)
    

    同时用inspect.exe仔细查看控件树,确认是否存在可识别的子控件。如果inspect.exe也看不到任何子控件,说明应用用了自定义绘制界面,pywinauto无法捕获控件,只能改用图像识别工具(比如pyautogui)。

  • 尝试切换后端与权限

    • 切换到win32后端测试:
      app = Application(backend="win32").start(r"C:\Users\user\Desktop\Pandora_v2.0\Pandora v2.0.exe")
      
    • 以管理员身份运行你的Python脚本,部分应用需要高权限才能读取控件信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:05:18