UI 自动化概述

更新:2007 年 11 月

Microsoft UI 自动化是 Microsoft Windows 的新增辅助功能框架,可用于支持 Windows Presentation Foundation (WPF) 的所有操作系统。

UI 自动化对桌面上的大多数用户界面 (UI) 元素提供编程访问,从而使辅助技术产品(如屏幕阅读器)能够向最终用户提供有关 UI 的信息,并通过标准输入以外的方式操作 UI。UI 自动化还允许自动化测试脚本与 UI 进行交互。

说明:

UI 自动化不能在由不同用户通过“运行身份”命令启动的进程之间实现通信。

可以确保所编写的 UI 自动化客户端应用程序能够在多种框架上运行。UI 自动化核心掩盖了 UI 各部分的框架之间的任何差异。例如,WPF 按钮的 Content 属性、Win32 按钮的 Caption 属性以及 HTML 图像的 ALT 属性都映射到 UI 自动化视图中的同一个属性 Name

UI 自动化在 Windows Vista、Microsoft Windows XP 和 Windows Server 2003 中提供了完整的功能。

UI 自动化提供程序通过内置的桥接服务为 Microsoft Active Accessibility 客户端应用程序提供某些支持。

本主题包括下列各节。

  • 提供程序和客户端
  • UI 自动化模型
  • 相关主题

提供程序和客户端

UI 自动化有四个主要组件,如下表所示。

组件

说明

提供程序 API(UIAutomationProvider.dll 和 UIAutomationTypes.dll)

一组由 UI 自动化提供程序实现的界面定义,提供有关 UI 元素的信息并响应编程输入的对象。

客户端 API(UIAutomationClient.dll 和 UIAutomationTypes.dll)

一组托管代码类型,使 UI 自动化客户端应用程序可以获取有关 UI 的信息并向控件发送输入。

UiAutomationCore.dll

处理提供程序与客户端之间的通信的基础代码(有时也称为 UI 自动化核心)。

UIAutomationClientsideProviders.dll

一组用于标准旧版本控件的 UI 自动化提供程序。(WPF 控件为 UI 自动化提供本机支持。) 此支持自动提供给客户端应用程序。

从软件开发人员的角度而言,使用 UI 自动化的方法有两种:一种是为自定义控件创建支持(使用提供程序 API),另一种是创建使用 UI 自动化核心与 UI 元素通信的应用程序(使用客户端 API)。您应当根据自己的关注点,参考本文档的不同部分。您可以从以下各节中了解有关概念的更多信息,并获取实用的帮助知识。

主题

读者

UI 自动化基础知识(本节)

概念的广泛概述。

所有人。

托管代码的 UI 自动化提供程序

概述和帮助主题,帮助您使用提供程序 API。

控件开发人员。

托管代码的 UI 自动化客户端

概述和帮助主题,帮助您使用客户端 API。

客户端应用程序开发人员。

UI 自动化控件模式

有关提供程序应如何实现控件模式以及客户端可使用哪些功能的信息。

所有人。

UI 自动化文本模式

有关提供程序应如何实现 Text 控件模式以及客户端可使用哪些功能的信息。

所有人。

UI 自动化控件类型

有关不同控件类型支持的属性和控件模式的信息。

所有人。

下表列出了 UI 自动化命名空间、包含它们的 DLL 以及使用它们的读者。

命名空间

引用的 DLL

读者

System.Windows.Automation

UIAutomationClientUIAutomationTypes

UI 自动化客户端开发人员;用于查找 AutomationElement 对象、注册 UI 自动化事件以及与 UI 自动化控件模式一起使用。

System.Windows.Automation.Provider

UIAutomationProviderUIAutomationTypes

除 WPF 之外的框架的 UI 自动化提供程序开发人员。

System.Windows.Automation.Text

UIAutomationClientUIAutomationTypes

除 WPF 之外的框架的 UI 自动化提供程序开发人员;用于实现 TextPattern 控件模式。

System.Windows.Automation.Peers

PresentationFramework

WPF 的 UI 自动化提供程序开发人员。

UI 自动化模型

UI 自动化将 UI 的每一部分作为一个 AutomationElement 向客户端应用程序公开。元素包含在树结构中,以桌面作为根元素。客户端可以将树的原始视图作为控件视图或内容视图进行筛选。(使用此软件开发工具包 (SDK) 附带的 UI Spy 应用程序可轻松显示结构的这些标准视图)。应用程序还可以创建自定义视图。

AutomationElement 对象公开它们所表示的 UI 元素的通用属性。其中一个属性是控件类型,它将其基本外观和功能定义为一个可识别的实体:例如按钮或复选框。

此外,元素还公开控件模式,以提供特定于这些元素的控件类型的属性。控件模式还公开方法,使客户端能够获取有关元素的进一步信息并提供输入。

说明:

控件类型和控件模式之间并不是一一对应的关系。多个控件类型可以支持同一个控件模式,一个控件可以支持多个控件模式,每个控件模式公开其行为的不同方面。例如,一个组合框至少具有两个控件模式:一个表示其展开和折叠功能,另一个表示选择机制。有关具体信息,请参见 UI 自动化控件类型

UI 自动化还通过事件向客户端应用程序提供信息。与 WinEvent 不同的是,UI 自动化事件并不基于广播机制。UI 自动化客户端注册特定的事件通知,并且可以请求将特定的 UI 自动化属性和控件模式信息传入其事件处理程序中。此外,UI 自动化事件还包含对引发该事件的元素的引用。根据是否有客户端在侦听,提供程序可以通过有选择地引发事件来改善性能。

请参见

概念

UI 自动化树概述

UI 自动化控件模式概述

UI 自动化属性概述

UI 自动化事件概述

UI 自动化安全性概述