Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "SetTitleMatchMode", в содержании - "Window Management" - "SetTitleMatchMode", v1.0.46.07.

Ник переводчика: NikVasKo.

Настоящее имя переводчика: Николай Козлов, г. Москва.

SetTitleMatchMode

Задает режим поиска соответствия для параметров WinTitle, WinText, ExcludeTitle и ExcludeText почти во всех командах, работающих с окнами, а также скорость и надежность такой работы.

SetTitleMatchMode, MatchMode
SetTitleMatchMode, Fast|Slow

Параметры

MatchMode Допускает одно из четырех значений: RegEx, 1, 2 или 3. До версии 1.0.45 использовались только режимы 1, 2 и 3.
  • RegEx: объявляет, что параметры WinTitle, WinText, ExcludeTitle, и ExcludeText рассматриваются как регулярные выражения (шаблоны). Шаблоны не надо заключать в кавычки. Пример команды с шаблоном: WinActivate Untitled.*Notepad. Действие шаблонов распространяется также на параметр WinTitle типов ahk_group и ahk_class. Например, ahk_class IEFrame будет искать классы, содержащие в любом месте названия подстроку IEFrame (потому что по умолчанию соответствие шаблону ищется в любом месте целевой строки). Заметьте, для шаблона WinText ищется соответствие в каждом текстовом элементе (т.е. в тексте каждого элемента управления) отдельно. Таким образом, невозможно найти вхождение, покрывающее более чем один элемент.
  • 1: заголовок окна должен начинаться со значения, заданного в WinTitle
  • 2: заголовок окна должен содержать значение, заданное в WinTitle
  • 3: заголовок окна должен совпадать со значением, заданным в WinTitle


  • Последние три режима применяются к ExcludeTitle точно так же, как к WinTitle. Режим 3, например, требует, чтобы для исключения окна его заголовок в точности совпал с ExcludeTitle.
Fast|Slow Fast: это значение по умолчанию. Может дать скорость существенно выше, чем режим Slow, но в некоторых типах окон некоторые элементы WinText могут оказаться не замеченными "оконными" командами.

Slow: может быть заметно медленнее, но гарантирует получение всех WinText из всех окон, когда "оконная" команда проверяет окна на соответствие. Какие фрагменты текста в окне требуют режима Slow (и есть ли такие), покажет Window Spy.

Примечания

Команда SetTitleMatchMode оказывает влияние на поведение всех (примеч. переводчика: почти всех) команд, работающих с окнами, например, IfWinExist и WinActivate.

Если режимы не указаны, то подразумеваются значения 1 и Fast.

Вообще говоря, режим slow следует использовать, только когда целевое окно не может быть однозначно опознано по его заголовку и тексту при режиме fast. Это от того, что режим Slow может быть крайне медленным, если окна какого-либо приложения заняты или "не отвечают".

Специальная версия Window Spy, распространяемая с AutoHotkey, дает отчет о текстах slow в отдельной секции так, что легко определить, нужен ли режим slow.

Если нужно изменение обоих атрибутов, используйте команду дважды:

SetTitleMatchMode, 2
SetTitleMatchMode, slow

Текущие состояния атрибутов хранятся во встроенных переменных A_TitleMatchMode и A_TitleMatchModeSpeed.

Параметры WinTitle, WinText, ExcludeTitle и ExcludeText чувствительны к регистру. Однако, чувствительность можно убрать, используя шаблоны с флагом case-insensitive. Пример такого шаблона: i)untitled - notepad.

В каждом вновь запущенном потоке (например, в потоках горячих клавиш, команд меню, таймеров) при старте считается, что атрибуты этой команды имеют значения по умолчанию. Умолчание можно изменить, используя обсуждаемую команду в автоисполняемой секции (в начале скрипта).

Примеры

SetTitleMatchMode 2      ; WinTitle должно входить в заголовок окна
SetTitleMatchMode RegEx  ; предписывает рассматривать атрибуты как шаблоны
SetTitleMatchMode Slow   ; включает медленный надежный режим
                         ; примечание: режим Slow/Fast меняется независимо

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.