Что нового

Окна, Диалоги Окно не делается активным

The_Immortal

Новичок
Сообщения
84
Репутация
4
Приветствую!

Господа, помогите, пожалуйста, понять по каким причинам может не срабатывать WinActive или почему не делается активным нужное окно? Пытаюсь немного автоматизировать запуск утилиты по работе с флешками. Сценарий 1 - когда утилита запускается через AutoIt, то проблем никаких нет. Сценарий 2 - когда утилита уже запущена и выполняется код - тут есть проблема.
Ведется поиск главного окна утилиты "SMI Mass Production Tool V 2.5.72 v1 19/09/17 build ___default.ini___", далее вызывается кнопка "SCAN USB (F5)", после вызывается кнопка "DEBUG", открывается второе окно "Password", куда вводится пароль, нажимается кнопка "ОК" в этом окне, а далее взору должно быть представлено третье клюевое окно "View CID". Так вот после того, как нажата кнопка "ОК" на втором окне "Password":
Код:
ControlClick($hWin, '', '[CLASS:Button; INSTANCE:1]');клик по кнопке 'ОК'
- третье окно "View CID" пояляется только тогда, когда вручную делается фокус на приложении (например, через Alt + Tab или кликом в утилиту). Я принудительно пытался активировать все три окна утилиты, но не выходит.

Подскажите, пожалуйста, в чем может быть проблема? Скрипт с утилитой во вложении.

Спасибо!
Код:
$sTitle = 'SMI Mass Production Tool               V 2.5.72   v1        19/09/17 build        ___default.ini___' ;заголовок главного окна
$sTitle2 = 'Password' ;заголовок второго окна
$sTitle3 = 'View CID' ;заголовок третьего окна

;$sFileExe = @ScriptDir & '\sm32Xtest_V2.5.72_v1_S0917.exe' ;полный путь к exe-файлу

;Run($sFileExe);запускаем приложение

$hWin = WinWait($sTitle, '', 5);ждем 5 сек. окно
If Not $hWin Then
    MsgBox(16, 'Error', 'Нет окна');если окна нет - сообщение об ошибке и выход
    Exit
EndIf
ControlClick($hWin, '', '[CLASS:Button; INSTANCE:43]');клик по кнопке 'SCAN USB (F5)'
Sleep(500)
ControlClick($hWin, '', '[CLASS:Button; INSTANCE:37]');клик по кнопке 'DEBUG'
$hWin = WinWaitActive($sTitle2)
ControlSetText($hWin, "", "Edit1", "1111");ввод пароля 1111
ControlClick($hWin, '', '[CLASS:Button; INSTANCE:1]');клик по кнопке 'OK'
;MsgBox('','',WinGetTitle("[active]"))
;WinActive($sTitle2)
WinActive($sTitle)
;$hWin = WinWaitActive($sTitle3)
;'WinActive($sTitle3)
 

Вложения

  • sm32Xtest.zip
    1.4 МБ · Просмотры: 2
Последнее редактирование:
Верх