Заголовки и текст окон (расширенные)

AutoIt может искать окна в одном из трёх режимов сравнения заголовков. Режим сравнения устанавливается функцией AutoItSetOption с помощью опции WinTitleMatchMode


Режим 1 (по умолчанию)

Сравнивает часть заголовка с его началом.

В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено как "Безымянный - Блокнот", "Безымянный", "Бе" и т.п.

Пример:

WinWait("Безымянный")


Режим 2

Сравнивает любую подстроку заголовка.

В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено как "Безымянный - Блокнот", "Безымянный", "Блокнот", "нот" и т.п.

Пример:

WinWait("Блокнот")


Режим 3

Полное совпадение заголовка.

В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено только при использовании "Безымянный - Блокнот"


Режим 4 (Оставлено для обратной совместимости)

Расширенный режим

Текст заголовка должен быть заменён расширенными параметрами, и это не нуждаются в установке какого либо режима сравнения заголовков.


Режимы от -1 до -3

Принудительное сравнение заголовка в нижнем регистре (по соответствующим режиму правилам).



Расширенные установки поиска окна

Специальное установки могут быть использованы в качестве параметра title в функциях работы с окнами. Эти установки могут быть использованы, чтобы отличить окна по следующим свойствам:

В функциях по работе с окнами в качестве параметра title могут использоваться одно или несколько свойств в следующем формате:

[СВОЙСТВО1:Значение1; СВОЙСТВО2:Значение2]

Пары "Свойство" и "Значение" перечисляются через ";", а между собой "Свойство" и "Значение" разделяются с помощью ":".

Примечание: если "Значение" должно содержать символ ";", он должен быть продублирован.


Пример: ожидать активацию окна с названием класса "Notepad"

WinWaitActive("[CLASS:Notepad]", "")


Пример: закрыть текущее активное окно

WinClose("[ACTIVE]", "")


Пример: ожидать активацию второго окна с заголовком "My Window" и именем класса "My Class". Используются 3 свойства

WinWaitActive("[TITLE:My Window; CLASS:My Class; INSTANCE:2]", "")


Пример: получить список с именем класса, удовлетворяющем указанному шаблону регулярного выражения

WinList("[REGEXPCLASS:#\d+]")


Пример: получить текст заголовка окна, с координатами X=50; Y=40, шириной равной 300, высотой равной 250. Всю метрику окна указывать не обязательно. Используются 5 свойств.

WinGetTitle("[CLASS:My Class; X:50; Y:40; W:300; H:250]")



Дескрипторы окон (HWND)

Различные тип данных в AutoIt имеет встроенную поддержку дескрипторов окон (HWND). Дескриптор окна - специальное значение, которое операционная система присваивает каждому создаваемому окну. Если имеется дескриптор, то его можно использовать вместо параметра title в любых функциях, работающих с окнами, имеющие параметры title/text. Преимущество использования дескриптора окна наблюдается в случаях, когда открыто несколько приложений, имеющих такие же заголовки и текст, при этом вы можете однозначно идентифицировать окно по его дескриптору. При использовании дескриптора окна в качестве параметра title, параметр text полностью игнорируется.

Многие функции, например WinGetHandle, WinList и GUICreate возвращают именно дескриптор окна. Важно заметить, дескриптор окна не рассматривается, как число или строка - это уникальный тип данных.


Примечание: при использовании дескриптора окно однозначно определяется, не принимая во внимание установленный режим WinTitleMatchMode.


Пример

$handle = WinGetHandle("Безымянный - Блокнот", "")
WinClose($handle)