Описание функции


WinWaitActive

Приостановить выполнение утилиты до активизации указанного окна.

WinWaitActive('title'[,'text'[,timeout=0]])

Параметры

title Заголовок/дескриптор/класс окна. См. заголовки и текст окон.
text [необязательный] Текст окна.
timeout [необязательный] Тайм-аут в секундах. По умолчанию 0 - бесконечное ожидание.

Возвращаемое значение

Успех:Возвращает дескриптор указанного окна.
Ошибка:Возвращает 0, если выход по тайм-ауту.

Примечания


Функцию можно подключить через команду exect
Для передачи пустой строки можно воспользоваться ключевым словом Null
Для передачи значения по умолчанию можно воспользоваться ключевым словом Default

См. также

WinActive, WinExists, WinWait, WinWaitClose, WinWaitNotActive, WinWaitDelay (Опция), ProcessWait

Примеры:
 Как создать кнопку?


exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),Null,'Edit1','привет') ;; запустить "Блокнот", дождаться активизации и ввести слово "привет"

exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),Null,'Edit1','закройте~~окно')||WinWaitClose(Eval('var_h'))||MsgBox(4096,Null,'окно~~закрыто') ;; запустить "Блокнот", дождаться закрытие окна пользователем

exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),Null,'Edit1','сверните~~окно')||WinWaitNotActive(Eval('var_h'))||MsgBox(4096,Null,'окно~~не~~активно') ;; запустить "Блокнот", дождаться когда окно не будет активным

start=%%COMMANDER_PATH%%\PK\PK.exe exect=$var_h=WinWaitActive('[CLASS:ThunderRT6FormDC]')||ControlSetText(Eval('var_h'),Null,'ThunderRT6TextBox1','пароль') ;; запуск программы, ожидание открытия окна и ввод текста "пароль" в заданное поле

start=%%COMMANDER_PATH%%\PK\PK.exe exect=$var_h=WinWaitActive('[CLASS:ThunderRT6FormDC]')||ControlSetText(Eval('var_h'),Null,'ThunderRT6TextBox1','пароль')||ControlClick(Eval('var_h'),Null,'ThunderRT6CommandButton3') ;; запуск программы, ожидание открытия окна и ввод текста "пароль" в заданное поле и нажатие на кнопку OK

exect=$var_h=WinActivate('[CLASS:AkelPad4]')||WinWaitActive(Eval('var_h')) ;; активировать окно AkelPad, приостановить работу утилиты, пока окно не активируется


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru