Обзор службы автоматизации пользовательского интерфейса
Средство обеспечения доступности Microsoft UI Automation — это платформа для Windows. Он предоставляет программный доступ к большинству элементов пользовательского интерфейса на рабочем столе. Она позволяет использовать вспомогательные технологии, такие как средства чтения с экрана, чтобы предоставлять информацию о пользовательском интерфейсе конечным пользователям и управлять пользовательским интерфейсом с помощью средств, отличных от стандартного ввода. Автоматизация пользовательского интерфейса также позволяет автоматическим скриптам тестирования взаимодействовать с пользовательским интерфейсом.
Автоматизация пользовательского интерфейса была впервые доступна в Windows XP в составе Microsoft .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 через встроенную службу бриджинга.
Заметка
Автоматизация пользовательского интерфейса не поддерживает обмен данными между процессами, запущенными различными пользователями через команду Выполнить от имени.
В этом разделе содержатся следующие разделы.
- компоненты автоматизации пользовательского интерфейса
- файлы заголовков автоматизации пользовательского интерфейса
- Модель автоматизации пользовательского интерфейса
- Связанные темы
Компоненты автоматизации пользовательского интерфейса
Служба автоматизации пользовательского интерфейса содержит четыре основных компонента, как показано в следующей таблице.
Компонент | Описание |
---|---|
API поставщика | Набор COM-интерфейсов, реализованных поставщиками автоматизации пользовательского интерфейса. Поставщики автоматизации пользовательского интерфейса — это объекты, предоставляющие сведения об элементах пользовательского интерфейса и реагирующие на программные входные данные. |
Клиентский API | Набор COM-интерфейсов, позволяющих клиентским приложениям получать сведения о пользовательском интерфейсе и отправлять входные данные элементам управления.
Примечание. Функции, описанные в устаревших функций шаблонов управления и устаревших функций узлов, не рекомендуются. Вместо этого клиентские приложения должны использовать com-интерфейсы автоматизации пользовательского интерфейса, описанные в разделе Интерфейсы элементов автоматизации пользовательского интерфейса для клиентов. |
UIAutomationCore.dll | Библиотека времени выполнения, иногда называемая ядром автоматизации пользовательского интерфейса, обрабатывающая обмен данными между поставщиками и клиентами. |
Oleacc.dll | Библиотека исполняемой среды для Microsoft Active Accessibility и прокси-объектов. Библиотека также предоставляет прокси-объекты, которые используются Microsoft Active Accessibility и UI Automation Proxy для поддержки элементов управления Win32. |
Существует два способа использования автоматизации пользовательского интерфейса: создание поддержки пользовательских элементов управления с помощью API поставщика, а также создание клиентских приложений, использующих ядро автоматизации пользовательского интерфейса для обмена данными и получения сведений об элементах пользовательского интерфейса. В зависимости от вашего направления, следует обращаться к разным частям документации. Если вам нужно создать поддержку пользовательских элементов управления, см. Руководство программиста по поставщику автоматизации интерфейса пользователя. Если вам нужно взаимодействовать с элементами пользовательского интерфейса или получить сведения об этих элементах, ознакомьтесь с Руководством по автоматизации пользовательского интерфейса для программистов.
Файлы заголовков автоматизации пользовательского интерфейса
API автоматизации пользовательского интерфейса определяется в нескольких разных файлах заголовков C/C++, включенных в пакет SDK для Windows. Файлы заголовков службы автоматизации пользовательского интерфейса описаны в следующей таблице:
Файл заголовка | Описание |
---|---|
UIAutomationClient.h | Определяет интерфейсы и связанные элементы программирования, используемые клиентами автоматизации пользовательского интерфейса. |
UIAutomationCore.h | Определяет интерфейсы и связанные элементы программирования, используемые поставщиками автоматизации пользовательского интерфейса. |
UIAutomationCoreApi.h | Определяет общие константы, идентификаторы GUID, типы данных и структуры, используемые клиентами и поставщиками службы автоматизации пользовательского интерфейса. Он также содержит определения для устаревших функций узла и шаблонов управления. |
UIAutomation.h | Включает все другие файлы заголовков UI Automation. Так как большинство приложений автоматизации пользовательского интерфейса требуют элементов из всех файлов заголовков автоматизации пользовательского интерфейса, рекомендуется включить UIAutomation.h в проекты приложений автоматизации пользовательского интерфейса вместо включения каждого файла по отдельности. |
Если вы разрабатываете приложение, использующее API автоматизации пользовательского интерфейса, в проект следует включить UIAutomation.h. Если ваше приложение поддерживает Microsoft Active Accessibility, включите заголовочный файл Oleacc.h. Приложения автоматизации пользовательского интерфейса, использующие идентификаторы GUID, также требуют файла заголовка Initguid.h. При необходимости необходимо включить initguid.h перед UIAutomation.h.
Модель автоматизации пользовательского интерфейса
Автоматизация пользовательского интерфейса предоставляет каждому элементу пользовательского интерфейса возможность взаимодействовать с клиентскими приложениями в виде объекта, представленного интерфейсом IUIAutomationElement. Элементы содержатся в структуре дерева с рабочим столом в качестве корневого элемента. Клиенты могут фильтровать необработанное представление дерева как представление элемента управления или представление содержимого. Эти стандартные представления структуры можно легко увидеть с помощью приложения Inspect, которое входит в состав Windows SDK. Приложения также могут создавать пользовательские представления.
Элемент автоматизации пользовательского интерфейса предоставляет свойства элемента управления или элемента пользовательского интерфейса, который он представляет. Одним из этих свойств является тип элемента управления, который определяет базовый внешний вид и функциональные возможности элемента элемента управления или пользовательского интерфейса как единую распознаваемую сущность, например кнопку или флажок. Дополнительные сведения о типах элементов управления см. в разделе Типы элементов управления автоматизации пользовательского интерфейса.
Кроме того, элемент автоматизации пользовательского интерфейса предоставляет один или несколько шаблонов элементов управления. Шаблон элемента управления предоставляет набор свойств, относящихся к конкретному типу элемента управления. Шаблон элемента управления также предоставляет методы, позволяющие клиентским приложениям получать дополнительные сведения об элементе и предоставлять входные данные для элемента. Дополнительные сведения о шаблонах управления см. в обзоре шаблонов управления автоматизации пользовательского интерфейса.
Заметка
Между типами элементов управления и шаблонами элементов управления не существует единого соответствия. Шаблон элемента управления может поддерживаться несколькими типами элементов управления, и элемент управления может поддерживать несколько шаблонов элементов управления, каждый из которых предоставляет различные аспекты его поведения. Например, комбинированный список имеет по крайней мере два паттерна управления: один отвечает за возможность расширять и сворачивать, а другой — за механизм выбора. Однако элемент управления может показывать только один тип элемента управления.
Служба автоматизации пользовательского интерфейса предоставляет сведения клиентским приложениям через события. В отличие от WinEvents, события автоматизации пользовательского интерфейса не основаны на механизме трансляции. Клиенты службы автоматизации пользовательского интерфейса регистрируются для определенных уведомлений о событиях и могут запрашивать, чтобы определенные свойства и сведения о шаблонах управления передаются обработчикам событий. Кроме того, событие автоматизации пользовательского интерфейса содержит ссылку на элемент, который его вызвал. Поставщики могут повысить производительность, выборочно вызывая события в зависимости от того, прослушиваются ли их клиенты. Дополнительные сведения о событиях см. в обзоре событий автоматизации пользовательского интерфейса.