Общие сведения о модели автоматизации пользовательского интерфейса
Примечание |
---|
Эта документация предназначена для разработчиков на платформе .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 |
Аудитория |
---|---|---|
UIAutomationClientUIAutomationTypes |
Разработчики клиента автоматизации пользовательского интерфейса; используется для поиска объектов AutomationElement, регистрации событий UI Automation и работы с шаблонами элементов управления UI Automation. |
|
UIAutomationProviderUIAutomationTypes |
Разработчики поставщиков автоматизации пользовательского интерфейса для сред, отличных от WPF. |
|
UIAutomationClientUIAutomationTypes |
Разработчики поставщиков автоматизации пользовательского интерфейса для сред, отличных от WPF; используется для реализации шаблона элемента управления TextPattern. |
|
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 содержит ссылку на создавший его элемент. Поставщики могут повысить производительность выборочным созданием событий в зависимости от прослушивающих клиентов.
См. также
Основные понятия
Общие сведения о дереве модели автоматизации пользовательского интерфейса
Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
Общие сведения о свойствах автоматизированного пользовательского интерфейса
Обзор событий автоматизации пользовательского интерфейса
Общие сведения о безопасности модели автоматизации пользовательского интерфейса