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

ПримечаниеПримечание

Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation.

Microsoft UI Automation — это новая среда доступа Microsoft Windows, совместимая со всеми операционными системами, поддерживающими Windows Presentation Foundation (WPF).

UI Automation обеспечивает программный доступ к большинству элементов user interface (UI) на рабочем столе, позволяя продуктам с поддержкой специальных возможностей, например средствам чтения с экрана, предоставлять конечным пользователям данные о UI и управлять UI средствами, отличными от стандартного ввода данных. UI Automation также позволяет скриптам автоматических тестов взаимодействовать с UI.

ПримечаниеПримечание

UI Automation не поддерживает взаимодействие между процессами, запущенными пользователями с помощью команды Запустить от имени.

Клиентские приложения автоматизации пользовательского интерфейса могут быть написаны для работы в нескольких средах. Ядро UI Automation маскирует любые различия в средах, которые лежат в основе отдельных частей UI. Например, свойство Content кнопки WPF, свойство Caption кнопки Win32 и свойство ALT HTML-изображения — все сопоставлены с одним свойством Name в представлении UI Automation.

UI Automation поддерживает все функциональные возможности в Windows Vista, Microsoft Windows XP и Windows Server 2003.

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

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

  • Поставщики и клиенты
  • Модель автоматизации пользовательского интерфейса
  • Связанные разделы

Поставщики и клиенты

UI Automation имеет четыре основных компонента, показанных в следующей таблице.

Компонент

Описание

API поставщика (UIAutomationProvider.dll и UIAutomationTypes.dll)

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

Клиентский API-интерфейс (UIAutomationClient.dll и UIAutomationTypes.dll)

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

UiAutomationCore.dll

Базовый код (иногда называемый ядром UI Automation), который обрабатывает взаимодействие между поставщиками и клиентами.

UIAutomationClientsideProviders.dll

Набор поставщиков автоматизации пользовательского интерфейса для стандартных устаревших элементов управления. (Элементы управления WPF имеют собственную поддержку UI Automation.) Эта поддержка автоматически становится доступной клиентским приложениям.

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

Раздел

Содержание

Аудитория

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

Широкий обзор понятий.

Все.

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

Обзоры и практические руководства, помогающие использовать API поставщика.

Разработчики элементов управления.

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

Обзоры и практические руководства, помогающие использовать API клиента.

Разработчики клиентских приложений.

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

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

Все.

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

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

Все.

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

Сведения о свойствах и шаблонах элементов управления, поддерживаемых другими типами элементов управления.

Все.

В следующей таблице перечислены пространства имен UI Automation, библиотеки DLL, которые их содержат, и использующая их аудитория.

Пространство имен

Связанные библиотеки DLL

Аудитория

System.Windows.Automation

UIAutomationClientUIAutomationTypes

Разработчики клиента автоматизации пользовательского интерфейса; используется для поиска объектов AutomationElement, регистрации событий UI Automation и работы с шаблонами элементов управления UI Automation.

System.Windows.Automation.Provider

UIAutomationProviderUIAutomationTypes

Разработчики поставщиков автоматизации пользовательского интерфейса для сред, отличных от WPF.

System.Windows.Automation.Text

UIAutomationClientUIAutomationTypes

Разработчики поставщиков автоматизации пользовательского интерфейса для сред, отличных от WPF; используется для реализации шаблона элемента управления TextPattern.

System.Windows.Automation.Peers

PresentationFramework

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

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

UI Automation предоставляет каждый фрагмент UI для клиентских приложений как объект AutomationElement. Элементы хранятся в древовидной структуре с рабочим столом в качестве корневого элемента. Клиенты могут фильтровать начальное представление дерева как представление элемента управления или представление содержимого. (Эти стандартные представления структуры можно легко просматривать с помощью приложения UI Spy, включенного в этот пакет software development kit (SDK)). В приложениях также можно создавать пользовательские представления.

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

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

ПримечаниеПримечание

Не существует однозначного соответствия между типами элементов управления и шаблонами элементов управления.Шаблон элемента управления может поддерживаться несколькими типами элементов управления, и элемент управления может поддерживать несколько шаблонов элементов управления, каждый из которых предоставляет различные аспекты его поведения.Например, поле с раскрывающимся списком имеет, по крайней мере, два шаблона элементов управления: один представляет его возможность разворачиваться и сворачиваться и другой представляет механизм выбора.Конкретные сведения см. в разделе Типы элементов управления автоматизации пользовательского интерфейса.

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

См. также

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

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

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

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

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

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