【问题标题】:The ™ symbol in my application is not allowing me to launch the application using pywinauto我的应用程序中的 ™ 符号不允许我使用 pywinauto 启动应用程序
【发布时间】:2017-04-10 05:02:34
【问题描述】:

我尝试了多种方法来启动我的应用程序。在某些情况下,我能够启动它但无法使用 print_control_identifier,或者在另一种情况下,我什至无法启动我的应用程序。我尝试了 pywinauto 0.6.2 入门文档中显示的这段代码。

# coding: utf-8
# -*- coding: utf-8 -*-
from subprocess import Popen
from pywinauto import Desktop
Popen('TRACE™ 3D Plus.exe', shell=True)
dlg = Desktop(backend="uia").TRACE™ 3D Plus
dlg.wait('visible')

现在,当我从命令提示符运行这段代码时,我得到了错误,

File "3d.py", line 6
dlg = Desktop(backend="uia").TRACE\ufffd 3D Plus
SyntaxError: invalid character in identifier

在我看来,我的应用程序名称中的 ™ 符号在执行这段代码时没有被正确解释。

对此有何想法以及我可以做些什么来使其发挥作用?

提前致谢!

【问题讨论】:

  • 抱歉,主要工作太忙了。周末看看。
  • 顺便说一句,dlg = Desktop(backend="uia").TRACE\ufffd 3D Plus 应该是 dlg = Desktop(backend="uia")['TRACE\ufffd 3D Plus']
  • 你试过Popen('TRACE\ufffd 3D Plus.exe', shell=True)吗?
  • 你也可以试试os.listdir('<path to target app folder>')看看Python中列出了哪些名字。
  • 嗨 Vasily,我尝试了您提到的代码: from subprocess import Popen from pywinauto import Desktop Popen('TRACE™ 3D Plus.exe', shell=True) dlg = Desktop(backend=" uia")['TRACE™ 3D Plus'] 我运行了这个,在命令提示符下得到消息 'TRACET' 不是内部或外部命令、可运行程序或批处理文件。应用程序文件夹以查看 exe 名称,并在命令提示符中将其显示为“TRACET 3D Plus.exe”。

标签: python-3.x ui-automation pywinauto


【解决方案1】:

正如我们通过 Skype 发现的,以下方法适用于该应用:

import os
from pywinauto import Application

exe_folder = "C:\\Program Files (x86)\\Trane\\TRACE 3D Plus"
executable = os.path.join(exe_folder, "TRACE\u2122 3D Plus.exe")

os.chdir(exe_folder)
app = Application(backend="uia").start(executable)

即使从cmd.exe 运行这个可执行文件也非常困难。我们还必须将工作目录更改为可执行文件所在的文件夹。否则它会显示内部异常(似乎是应用程序问题)。

【讨论】:

  • 嗨 Vasily,是的,我们能够使用以下代码启动应用程序:from pywinauto import application app = Application. import os os.chdir(r"C:\Program Files (x86)\Trane\TRACE 3D Plus") import subprocess subprocess.Popen('"C:\\Program Files (x86)\\Trane\\TRACE 3D Plus\ \TRACE\u2122 3D Plus.exe"',shell=True)。
  • 但由于我们没有使用 app.start 或 app.connect,所以当我使用 "dlg = Desktop(backend="uia").Calculator dlg.window(auto_id=' 时出现名称错误num8Button', control_type='Button')" 如指南中所述,那么如何指定我要单击的按钮的应用程序窗口名称和控件类型?
猜你喜欢
  • 2021-04-26
  • 1970-01-01
  • 2016-02-11
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
相关资源
最近更新 更多