background:
Я хочу запустить графический файл ESET Internet Security из python от имени администратора.Он называется egui.exe.Поэтому в его свойствах при совместимости я установил флажок «запускать эту программу от имени администратора», чтобы она всегда выполнялась от имени администратора.
Еще одно замечание: по какой-то причине это может показаться мне непонятным, если я запускаю этотФайл в Python, как это:
os.startfile("c:\\program files\\ESET\\ESET Security\\egui.exe")
или
os.system("c:\\program files\\ESET\\ESET Security\\egui.exe")
Он будет зависать и ничего не делать.я протестировал тот же подход в CMD, как эти:
c:\Program Files\ESET\ESET Security>egui.exe
c:\Program Files\ESET\ESET Security>start egui.exe
Но оба из них заставят CMD зависнуть и ничего не делать, и даже Ctrl + C не прервет его, и CMD должен быть закрыт.
что я сделал:
Подход, который каким-то образом работает, заключается в запуске exe-файла через explorer.exe:
os.system('explorer.exe "c:\\program files\\ESET\\ESET Security\\egui.exe"')
Это не остановится, но проблемачто из-за того, что я хочу, чтобы egui.exe запускался от имени администратора, он вызовет приглашение UAC, что недопустимо, поскольку предполагается, что программа тестируется с использованием GUI Automation.
Вопрос:
Я могу запускать другие программы как администратор, не вызывая UAC, когда моя программа сама запускается как администратор.Но я не могу при запуске через explorer.exe, и я думаю, что это потому, что explorer.exe не как сам администратор.Итак, вопрос в том, как я могу запустить explorer.exe с правами администратора?Кроме того, ввод пароля каждый раз неприемлем по понятным причинам.
PS: К сожалению, в его свойствах нет параметра совместимости для explorer.exe.