我正在尝试打开Adv5KTCP.exe(代码中显示了路径),但该exe实际上又打开了三个avi.files,如下图所示。这会导致错误。我试过os,subprocess和pywinauto调用,但无济于事。我也尝试将文件路径添加到环境变量,但是我认为这没有任何意义。从命令提示符下打开exe也不起作用。但是,可以通过双击exe文件来手动打开exe(与通常情况一样)。我只需要将其自动化即可。
错误:
双击该exe会打开此窗口:
这是我的代码:
import os
import sys, logging
import subprocess
import ctypes
from pywinauto import Application
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
exe = "Adv5KTCP.exe" #path set in environment variable: "C:\Program Files (x86)\Advantech\ADAM-5000TCP-6000 Utility\Program"
os.startfile(exe)
# subprocess.Popen([exe])
# application = Application(backend="uia").start(exe)
else:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
有人对我该如何做有任何想法吗?预先感谢您的答复。
新发现:
我试图将三个AVI文件剪切到桌面,并将桌面路径设置为系统变量,并且exe出现相同的错误。但是,当我用avi文件将exe文件剪切到桌面时,如下所示,它可以正常工作!即使其他必需文件不在桌面中,但路径也已设置为系统变量。这意味着该exe会以某种方式在单击,位置/位置或我不确定的某种形式时注册avi的路径。