2016-04-21 8 views
1

Я использую AutoItX3.Control через win32com.client для обнаружения и закрытия диалогового окна безопасности Windows («доверяете ли вы ...»). Я использую WinExist с заголовком окна \ text и отлично работает при запуске скрипта python (версия Autoit - 3.3.8.1).autoit не обнаруживает окна в скомпилированном сценарии python

Проблема с скомпилированным скриптом Python (скомпилирована с PyInstaller). Окно не обнаружено, и я не могу его закрыть. Когда я запускаю приложение Autoit (SciTE4AutoIt3), он обнаруживает это окно.

Любые советы?

///// добавив некоторую информацию: используя следующие опции AutoIt:

Opt('WinWaitDelay', 500) 
Opt('SendKeyDelay', 8) 
Opt('WinTitleMatchMode', 4) 
Opt('WinSearchChildren', 1) 
Opt('SendKeyDownDelay', 10) 
Opt('WinDetectHiddenText', 1) 

также, Im запуск AutoIt на другом процессе в качестве экземпляра класса Process (Process(target=handle_window_func))

ответ

0

решена, запустив как функциональность AutoIt и процесс запускающего всплывающее окно в том же сценарии и мониторинга для всплывающего в то время как процесс работает: popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs) while popup_p.is_running(): handle_window_func() time.sleep(1) Обратите внимание, что Popen запускается с no_wait - возвращает процесс, не дожидаясь его завершения.

0

Вы пытались использовать классический метод для установки активных опций X? Как:

oAutoItx.AutoItSetOption("WinTitleMatchMode", 4)

вместо: oAutoItx.Opt("WinTitleMatchMode", 4)

Также AutoItx помощь говорит: "Режим 4 (" только "Хранится для обратной совместимости)". Итак, проверьте свои варианты и воспользуйтесь простейшими, которые вы можете использовать.

+0

В чем разница между AutoItSetOption и Opt? –