Описание заголовков и текстов окон


Заголовки и текст окон.


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


  • Для передачи пустой строки можно воспользоваться ключевым словом Null
  • Необязательные параметры можно не прописывать, если они стоят в конце.

Режим 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)


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

exect=WinClose('[ACTIVE]')


Пример: ожидать активацию второго окна с заголовком '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]')



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

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

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


В содержании подраздела [Функции => Окна] находится список функций, которые работают с дескрипторами окон.


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


Пример

exect=$var_handle=WinGetHandle('Безымянный~~—~~Блокнот')




© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru