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


WinWait

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

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

Параметры

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

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

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

Примечания


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

См. также

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

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


exect=Run('notepad.exe')||WinWait('[CLASS:Notepad]')||Sleep(3000)||WinClose('[CLASS:Notepad]') ;; запустить "Блокнот", дождаться появления указанного окна и через 3 секунды закрыть окно

exect=Run('notepad.exe')||$var_h=WinWait('[CLASS:Notepad]',Null,5)||WinSetState(HWnd($var_h),Null,@SW_MINIMIZE) ;; запускает "Блокнот", ожидает появление и сворачивает

exect=Run('notepad.exe')||$var_h=WinWait('[CLASS:Notepad]',Null,5)||SendKeepActive(HWnd($var_h)) <FOR> 1 <TO> 10 exect=Send('привет')||Sleep(500) <NEXT> exect=SendKeepActive(Null)||WinClose(HWnd($var_h)) ;; запустить "Блокнот" и удерживать окно блокнота активным при использовании функции Send()

exect=Run('notepad.exe')||$var_h=WinWait('[CLASS:Notepad]',Null,5)||IsHWnd(Eval('var_h'))?_ViewValues('Это~~дескриптор~~HWND'):_ViewValues('Это~~НЕ~~дескриптор~~HWND') ;; запустить "Блокнот" и проверить дескриптор окна на валидность


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