Общие сведения о модели автоматизации пользовательского интерфейса

Автоматизация пользовательского интерфейса Майкрософт — это платформа специальных возможностей для Windows. Она предоставляет программный доступ к большинству элементов пользовательского интерфейса на рабочем столе. Она позволяет продуктам специальных возможностей, таким как средства чтения с экрана, предоставлять сведения о пользовательском интерфейсе конечным пользователям и управлять пользовательским интерфейсом с помощью средств, отличных от стандартных входных данных. Автоматизация пользовательского интерфейса также позволяет автоматическим скриптам тестирования взаимодействовать с пользовательским интерфейсом.

Автоматизация пользовательского интерфейса впервые появилась в Windows XP в рамках платформа .NET Framework Майкрософт. Хотя в то время также был опубликован неуправляемый API C++, полезность клиентских функций была ограничена из-за проблем с взаимодействием. Для Windows 7 API был перезаписан в компонентной объектной модели (COM).

Примечание

Хотя функции библиотеки, представленные в более ранней версии автоматизации пользовательского интерфейса, по-прежнему описаны, их не следует использовать в новых приложениях.

Клиентские приложения автоматизации пользовательского интерфейса могут быть написаны с гарантией того, что они будут работать на нескольких платформах управления Microsoft Windows. Ядро автоматизации пользовательского интерфейса маскирует все различия в платформах, лежащих в основе различных элементов пользовательского интерфейса. Например, свойство Content кнопки Windows Presentation Foundation (WPF), свойство Caption кнопки Microsoft Win32 и свойство ALT HTML-изображения сопоставляются с одним свойством Name в представлении автоматизации пользовательского интерфейса.

Автоматизация пользовательского интерфейса предоставляет полные функциональные возможности в операционных системах Windows XP, Windows Server 2003 и более поздних версий.

Поставщики автоматизации пользовательского интерфейса — это компоненты, которые реализуют поддержку автоматизации пользовательского интерфейса в элементах управления и предлагают некоторую поддержку клиентских приложений Microsoft Active Accessibility через встроенную службу мостов.

Примечание

Автоматизация пользовательского интерфейса не обеспечивает обмен данными между процессами, запущенными разными пользователями, с помощью команды Запуск от имени .

В этом разделе содержатся следующие подразделы.

Компоненты автоматизации пользовательского интерфейса

Автоматизация пользовательского интерфейса содержит четыре компонента main, как показано в следующей таблице.

Компонент Описание
API поставщика Набор COM-интерфейсов, реализованных поставщиками автоматизации пользовательского интерфейса. Поставщики автоматизации пользовательского интерфейса — это объекты, которые предоставляют сведения об элементах пользовательского интерфейса и реагируют на программные входные данные.
API клиента Набор COM-интерфейсов, которые позволяют клиентским приложениям получать сведения о пользовательском интерфейсе и отправлять входные данные элементам управления. Примечание: Функции, описанные в разделах Нерекомендуемые функции шаблонов элементов управления и Нерекомендуемые функции узлов являются устаревшими. Вместо этого клиентские приложения должны использовать COM-интерфейсы автоматизации пользовательского интерфейса, описанные в разделе Интерфейсы элементов автоматизации пользовательского интерфейса для клиентов.
UIAutomationCore.dll Библиотека времени выполнения, иногда называемая ядром автоматизации пользовательского интерфейса, которая обрабатывает обмен данными между поставщиками и клиентами.
Oleacc.dll Библиотека времени выполнения для microsoft Active Accessibility и прокси-объектов. Библиотека также предоставляет прокси-объекты, используемые microsoft Microsoft Active Accessibility to UI Automation Proxy для поддержки элементов управления Win32.

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

Файлы заголовков автоматизации пользовательского интерфейса

API автоматизации пользовательского интерфейса определяется в нескольких разных файлах заголовков C/C++, которые входят в состав пакета sdk для Windows. Файлы заголовков автоматизации пользовательского интерфейса описаны в следующей таблице:

Файл заголовка Описание
UIAutomationClient.h Определяет интерфейсы и связанные элементы программирования, используемые клиентами автоматизации пользовательского интерфейса.
UIAutomationCore.h Определяет интерфейсы и связанные элементы программирования, используемые поставщиками автоматизации пользовательского интерфейса.
UIAutomationCoreApi.h Определяет общие константы, идентификаторы GUID, типы данных и структуры, используемые клиентами и поставщиками автоматизации пользовательского интерфейса. Он также содержит определения для устаревших функций узла и шаблонов элементов управления.
UIAutomation.h Включает все остальные файлы заголовков автоматизации пользовательского интерфейса. Так как большинству приложений автоматизации пользовательского интерфейса требуются элементы из всех файлов заголовков автоматизации пользовательского интерфейса, лучше включать UIAutomation.h в проекты приложений автоматизации пользовательского интерфейса, а не включать каждый файл по отдельности.

Если вы разрабатываете приложение, использующее API автоматизации пользовательского интерфейса, необходимо включить UIAutomation.h в проект. Если приложение поддерживает специальные возможности Microsoft Active, добавьте файл заголовка Oleacc.h. Приложениям автоматизации пользовательского интерфейса, используюющим идентификаторы GUID, также требуется файл заголовка Initguid.h. При необходимости initguid.h следует включить перед UIAutomation.h.

Модель автоматизации пользовательского интерфейса

Автоматизация пользовательского интерфейса предоставляет клиентским приложениям каждый элемент пользовательского интерфейса в виде объекта, представленного интерфейсом IUIAutomationElement . Элементы содержатся в древовидной структуре с рабочим столом в качестве корневого элемента. Клиенты могут фильтровать базовое представление дерева как представление элемента управления или представление содержимого. Эти стандартные представления структуры можно легко просмотреть с помощью приложения Проверка , которое входит в состав пакета Windows SDK. Приложения также могут создавать настраиваемые представления.

Элемент автоматизации пользовательского интерфейса предоставляет свойства элемента управления или элемента пользовательского интерфейса, который он представляет. Одним из этих свойств является тип элемента управления, который определяет базовый внешний вид и функциональные возможности элемента управления или элемента пользовательского интерфейса как единой узнаваемой сущности, например кнопки или проверка поля. Дополнительные сведения о типах элементов управления см. в разделе Общие сведения о типах элементов управления автоматизации пользовательского интерфейса.

Кроме того, элемент автоматизации пользовательского интерфейса предоставляет один или несколько шаблонов элементов управления. Шаблон элемента управления предоставляет набор свойств, относящихся к определенному типу элемента управления. Шаблон элемента управления также предоставляет методы, позволяющие клиентским приложениям получать дополнительные сведения об элементе и предоставлять входные данные для элемента. Дополнительные сведения о шаблонах элементов управления см. в разделе UI Automation Control Patterns Overview.

Примечание

Между типами элементов управления и шаблонами элементов управления нет соответствия "один к одному". Шаблон элемента управления может поддерживаться несколькими типами элементов управления, и элемент управления может поддерживать несколько шаблонов элементов управления, каждый из которых представляет различные аспекты его поведения. Например, поле со списком имеет по крайней мере два шаблона элементов управления: один представляет его возможность разворачиваться и сворачиваться, а другой представляет механизм выбора. Однако элемент управления может иметь только один тип элемента управления.

Автоматизация пользовательского интерфейса предоставляет сведения для клиентских приложений с помощью событий. В отличие от WinEvents, события автоматизации пользовательского интерфейса не основаны на механизме широковещательной передачи. Клиенты автоматизации пользовательского интерфейса регистрируются для получения определенных уведомлений о событиях и могут запрашивать передачу определенных свойств и шаблонов элементов управления обработчикам событий. Кроме того, событие автоматизации пользовательского интерфейса содержит ссылку на элемент, который его вызвал. Поставщики могут повысить производительность, вызывая события выборочно, в зависимости от того, являются ли клиенты прослушивающими. Дополнительные сведения о событиях см. в разделе UI Automation Events Overview.

Основные понятия

Общие сведения о типах элементов управления автоматизации пользовательского интерфейса

Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса

Обзор событий автоматизации пользовательского интерфейса