Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

StatusBarWait -Autohotkey

Ожидает появления в строке состояния окна указанного текста.

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 Окна, чей текст включает значение этого параметра, исключаются.

ErrorLevel

Устанавливается в 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, Текст изменился.
Автор перевода: YMP
Настоящее имя переводчика: Юрий Попов
Источник: http://www.script-coding.com/AutoHotkey/StatusBarWait.html
Под редакцией ahk-wiki.ru от 21.08.19