Элементы управления

Одна из лучших новых возможностей AutoIt v3 - возможность работы непосредственно с определённым элементом управления окна. Практически всё что вы видите в GUI-окне является элементами определённых типов: кнопки, списки (ListBox), области редактирования, статический текст всех элементов.  На самом деле приложение "Блокнот" является просто одним большим элементом "Edit"! Поскольку AutoIt работает непосредственно с элементами управления, это обеспечивает более надёжный способ автоматизации, чем просто отправка нажатия клавиш.


Примечание: AutoIt работает только с стандартными элементами управления Microsoft. Некоторые приложения пишут свои собственные пользовательские элементы управления, которые могут выглядеть как стандартные элементы MS, но могут противодействовать автоматизации. Экспериментально!


Используя инструмент AutoIt v3 Window Info перемещайте курсор мыши в пределах окна на интересующих вас элементах управления и вы получите информацию об элементах, которые в данный момент находятся под курсором мыши.

Специальную информацию можно использовать как параметр controlID, используемый в большинстве функций Control...(). Эта информация может быть использована для идентификации элементов управления следующими свойствами:

Один или несколько свойств, используемых в параметре controlID в формате:

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

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

Примечание: Если специальный формат не используется, то параметр считается как идентификатор ID (если число) или ClassnameNN/текст элемента управления (если строка).

Если "Value" содержит ";", то она должна дублироваться.


Пример: высылаем текст в 1-ый элемент Edit в окне Блокнота

ControlSend("Безымянный - Блокнот", "", "[CLASS:Edit; INSTANCE:1]", "Это некоторый текст")

или

ControlSend("Безымянный - Блокнот", "", "[CLASSNN:Edit1]", "Это некоторый текст")

или

ControlSend("Безымянный - Блокнот", "", "Edit1", "Это некоторый текст")


Пример: нажимаем элемент управления с идентификатором ID 254 в окне "Моё окно"

ControlClick("Моё окно", "", "[ID:254]")

или

ControlClick("Моё окно", "", 254)


Пример: устанавливаем текст "C:\Some\Folder" в элемент управления .NET Winforms "textBoxFolder"

ControlSetText("Моё окно", "", "[NAME:textBoxFolder]", "C:\Some\Folder")


Пример: нажимаем 2-ой экземпляр элемента "Button", содержащий текст "Finish"

ControlClick("Моё окно", "", "[CLASS:Button; TEXT:Finish; INSTANCE:2]")


Пример: получить текст кнопки с именем класса Button, с координатами X=54; Y=43, шириной равной 63, высотой равной 34. Всю метрику кнопки указывать не обязательно. Используются 5 свойств.

ControlGetText("Калькулятор", "", "[CLASS:Button; X:54; Y:43; W:63; H:34]")



Дескриптор элемента управления (HWND)

Используя функцию ControlGetHandle можно определить дескриптор (HWND) элемента управления. Дескриптор это уникальный идентификатор, который Windows дает элементу управления. Дескриптор изменяется при каждом создании элемента управления.



Посмотрите содержание подраздела ФУНКЦИИ --> Окна --> Элементы управления со списком функций, которые работают с элементами управления.