Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "StatusBarWait", в содержании - "Window Management" - "StatusBarWait", v1.0.46.07.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Ожидает появления в строке состояния окна указанного текста.
StatusBarWait [, BarText, Seconds, Part#, WinTitle, WinText, Interval, ExcludeTitle, ExcludeText]
BarText | Текст или часть текста, появления которого будет ждать команда. Значение по умолчанию - пустая строка, т.е. команда ждёт, когда строка состояния станет пустой. Текст чувствителен к регистру, метод его поиска задаётся командой SetTitleMatchMode, так же как для параметра WinTitle ниже. Если нужно отслеживать изменение текста, либо используйте команду StatusBarGetText в цикле, либо следуйте примеру с RegEx (регулярным выражением) в конце этой статьи. |
Seconds | Время ожидания в секундах (может быть числом с плавающей точкой или выражением). Если время истекло, а текст не обнаружен, ErrorLevel устанавливается в 1. Значение по умолчанию - пустое, что значит ждать неопределённо долго. Значение 0 означает то же самое, что 0.5. |
Part# | Номер части строки состояния, из которой будет считан текст (может быть выражением). Значение по умолчанию 1; обычно именно эта часть содержит текст, представляющий интерес. |
WinTitle | Заголовок или часть заголовка окна (метод поиска можно задавать командой SetTitleMatchMode). Если этот и 3 других оконных параметра пустые или опущены, будет использовано последнее найденное окно. Если параметр задан буквой А и 3 других оконных параметра пустые или опущены, будет использовано активное окно. Чтобы задать окно через его класс, используйте конструкцию ahk_class ТочноеИмяКласса (можно посмотреть программой Window Spy). Чтобы использовать идентификатор процесса (PID), задайте параметр как ahk_pid %ПеременнаяСодержащаяPID%. Чтобы использовать группу окон, задайте параметр как ahk_group ИмяГруппы. Чтобы использовать идентификатор окна, задайте параметр как ahk_id %ПеременнаяСодержащаяID%. Сектор поиска можно сузить, задав несколько критериев, например, My File.txt ahk_class Notepad. |
WinText | Подстрока из одиночного текстового элемента окна (можно посмотреть программой Window Spy). Скрытые текстовые элементы определяются, если включено определение скрытого текста (команда DetectHiddenText). |
Interval | Пауза в миллисекундах между последовательными проверками строки состояния, пока команда ждёт появления текста (может быть выражением). Значение по умолчанию 50. |
ExcludeTitle | Окна, чей заголовок включает значение этого параметра, исключаются. |
ExcludeText | Окна, чей текст включает значение этого параметра, исключаются. |
Устанавливается в 1, если истекло время ожидания, а текст не появился. Устанавливается в 2, если строка состояния недоступна. Ноль, если текст считан успешно.
Эта команда пытается прочитать первую стандартную строку состояния окна (Microsoft common control: msctls_statusbar32). Некоторые программы используют свои собственные строки состояния или специальные версии Microsoft common control; в этих случаях их текст не может быть считан.
Использование этой команды предпочтительнее использования StatusBarGetText в цикле, т.к. она содержит улучшения, позволяющие избежать последствий большого количества повторных вызовов StatusBarGetText.
StatusBarWait определяет целевое окно, прежде чем начать ожидать появления текста. Если это окно закроется, команда прекратит ожидание, даже если имеются другие окна, подходящие под критерии, заданные в параметрах WinTitle и WinText.
В период, когда команда находится в ожидании, новые потоки могут запускаться через горячие клавиши, пункты меню или таймеры.
Заголовки и текст окон чувствительны к регистру. Скрытые окна не определяются, если только это не задано командой DetectHiddenWindows.
; Этот пример вводит новый шаблон для поиска в окно поиска Проводника. ; (Имеется в виду состояние этого окна, когда только что произошёл предыдущий ; поиск. Окно должно быть на русском, т.к. используется акселератор - подчёркнутая ; русская буква "н" на кнопке Назад). IfWinExist, Результаты поиска ; Делает целевое окно последним найденным, чтобы упростить код ниже. { WinActivate Send, {tab 2}!н*.txt{enter} ; Задание нового шаблона. Sleep, 400 ; Даёт строке состояния время измениться. StatusBarWait, Найдено, 30 if ErrorLevel MsgBox, Истекло время ожидания или возникли проблемы. else MsgBox, Поиск завершён. } ; Этот пример ожидает изменения строки состояния активного окна. ; Работает, начиная с версии 1.0.46.06. SetTitleMatchMode RegEx IfWinExist A ; Сделать активное окно последним найденным (для использования ниже). { StatusBarGetText, OrigText ; Считывает существующий текст. StatusBarWait, ^(?!^\Q%OrigText%\E$) ; Ждёт любого текста, отличающегося от исходного. } MsgBox, Текст изменился.
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.