#pywinauto
Вопрос:
Я пытаюсь открыть printmanagement.msc
, используя приведенный ниже код. Но получаю ошибку.
Мой код:
from pywinauto.application import Application
Application().start(r'mmc printmanagement.msc')
Ошибка:
pywinauto.application.AppStartError: Could not create the process "mmc printmanagement.msc"
Error returned by CreateProcess: (740, 'CreateProcess', 'The requested operation requires elevation.')
Ответ №1:
Повышение означает «запуск от имени администратора». Вы должны запустить процесс Python от имени администратора (или вашей среды разработки, или cmd.exe перед началом python.exe в консоли). Родительский процесс для mmc.exe
должен запускаться от имени администратора.
Другой способ разрешить автоматическое повышение (если Python не является привилегированным процессом):
Application().start(r'cmd.exe /c mmc.exe printmanagement.msc', wait_for_idle=False)
А затем вам нужно подключиться к дочернему mmc.exe
процессу таким образом.
app = Application(backend='win32').connect(path='mmc.exe')
# or using backend="uia" whatever is better
Потому что процесс запуска cmd.exe
завершается немедленно. pywinauto не может автоматически обнаруживать и обрабатывать порожденные дочерние процессы, но у нас есть запрос на такую функцию.
Комментарии:
1. Большое спасибо, сэр, теперь я могу запустить printmanagement.msc . Но теперь я получаю эту ошибку, pywinauto.application. ProcessNotFoundError: Процесс «mmc.exe» не найдено!. Как это решить?
2. Дополнительная информация: при подключении к дочернему процессу с помощью приложения = Приложение(серверная часть=’win32′).подключение(путь=’mmc.exe’), получаю ошибку-pywinauto.приложение. ProcessNotFoundError: Процесс «mmc.exe» не найдено!
3. Это потому, что mmc.exe выполняет самовосстановление. Поэтому запуск Python от имени администратора является обязательным. Кстати. если ответ правильный и он решает вашу проблему, пожалуйста, отметьте его как принятый (установите флажок «Серый» в левой части ответа). Это экономит время для других (не читая решенные проблемы) и мотивирует всех на будущие ответы.