Я пытаюсь открыть Adv5KTCP.exe (путь показан в коде), но этот exe-файл на самом деле открывает еще три файла avi.files, как показано на рисунке ниже. Это вызывает ошибку. Я пытался вызвать os, subprocess & pywinauto, но безрезультатно. Я также попытался добавить путь к файлам переменной среды, но я думаю, что это не имеет смысла. Открытие exe из командной строки тоже не работает. Тем не менее, exe-файл можно открыть вручную, дважды щелкнув exe-файл (как обычно). Мне просто нужно, чтобы это было автоматизировано.
AVI файлы:
Ошибка:
Двойной щелчок по 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 даетта же ошибка. Однако, когда я вырезал exe-файл на рабочий стол с avi-файлами, как показано ниже, это работает! Даже когда другие необходимые файлы не находятся на рабочем столе, но путь к ним установлен в системную переменную. Это означает, что exe каким-то образом регистрирует пути avi при щелчке, расположении / позиции или какой-то другой, в которой я не уверен.