Описание заголовков и текстов окон | |
Заголовки и текст окон.
AutoIt может искать окна в одном из трёх режимов сравнения заголовков. Режим сравнения устанавливается функцией AutoItSetOption с помощью опции WinTitleMatchMode
Режим 1 (по умолчанию)
Сравнивает часть заголовка с его началом.
В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено как 'Безымянный - Блокнот', 'Безымянный', 'Бе' и т.п.
Пример:
WinWait('Безымянный')
Режим 2
Сравнивает любую подстроку заголовка.
В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено как 'Безымянный - Блокнот', 'Безымянный', 'Блокнот', 'нот' и т.п.
Пример:
WinWait('Блокнот')
Режим 3
Полное совпадение заголовка.
В этом режиме окно с заголовком Безымянный - Блокнот может быть найдено только при использовании "Безымянный - Блокнот"
Режим 4 (Оставлено для обратной совместимости)
Расширенный режим
Текст заголовка должен быть заменён расширенными параметрами, и это не нуждаются в установке какого либо режима сравнения заголовков.
Режимы от -1 до -3
Принудительное сравнение заголовка в нижнем регистре (по соответствующим режиму правилам).
Специальное установки могут быть использованы в качестве параметра title в функциях работы с окнами. Эти установки могут быть использованы, чтобы отличить окна по следующим свойствам:
В функциях по работе с окнами в качестве параметра title могут использоваться одно или несколько свойств в следующем формате:
[СВОЙСТВО1:Значение1;СВОЙСТВО2:Значение2]
Пары "Свойство" и "Значение" перечисляются через ";", а между собой "Свойство" и "Значение" разделяются с помощью ":".Примечание: если "Значение" должно содержать символ ";", он должен быть продублирован.
Пример: ожидать активацию окна с названием класса 'Notepad'
Необязательные параметры можно не прописывать, если они стоят в конце
exect=WinWaitActive('[CLASS:Notepad]')
exect=WinWaitActive('[CLASS:Notepad]','''')
exect=WinWaitActive('[CLASS:Notepad]',Null)
Пример: закрыть текущее активное окно
Пример: ожидать активацию второго окна с заголовком 'My Window' и именем класса 'My Class'. Используются 3 свойства
exect=WinWaitActive('[TITLE:MyWindow;CLASS:My~~Class;INSTANCE:2]')
Пример: получить список с именем класса, удовлетворяющем указанному шаблону регулярного выражения
exect=WinList('[REGEXPCLASS:#\d+]')
Пример: получить текст заголовка окна, с координатами X=50; Y=40, шириной равной 300, высотой равной 250. Всю метрику окна указывать не обязательно. Используются 5 свойств.
exect=WinGetTitle('[CLASS:My~~Class;X:50;Y:40;W:300;H:250]')
Различные типы данных в AutoIt имеют встроенную поддержку дескрипторов окон (HWND). Дескриптор окна - специальное значение, которое операционная система присваивает каждому создаваемому окну. Если имеется дескриптор, то его можно использовать вместо параметра title в любых функциях, работающих с окнами, имеющие параметры title/text. Преимущество использования дескриптора окна наблюдается в случаях, когда открыто несколько приложений, имеющих такие же заголовки и текст, при этом вы можете однозначно идентифицировать окно по его дескриптору. При использовании дескриптора окна в качестве параметра title, параметр text полностью игнорируется.
Многие функции, например WinGetHandle, WinList возвращают именно дескриптор окна. Важно заметить, дескриптор окна не рассматривается, как число или строка - это уникальный тип данных.
В содержании подраздела [Функции => Окна] находится список функций, которые работают с дескрипторами окон.
Примечание: при использовании дескриптора окно однозначно определяется, не принимая во внимание установленный режим WinTitleMatchMode.
Пример
exect=$var_handle=WinGetHandle('Безымянный~~—~~Блокнот')