UI 自动化 客户端概述

本主题介绍实现 Microsoft UI 自动化 客户端应用程序所涉及的main任务。

UI 自动化客户端是使用 UI 自动化 API 访问有关 UI 元素的信息或通过 UI 元素的编程操作来控制应用程序的任何应用程序。 UI 自动化客户端包括辅助技术应用程序(如屏幕阅读器),这些应用程序检索有关 UI 元素的信息,并采用残障人士可用的方式呈现信息。 它们还包括语音识别程序和软件测试工具等应用程序,这些工具使用UI 自动化而不是鼠标和键盘来“驱动”其他应用程序。

从UI 自动化的角度来看,UI 自动化客户端应用程序必须完成的main任务包括:

  1. 获取 CUIAutomation 对象的实例。

    UI 自动化提供程序向客户端公开有关 UI 元素和访问 UI 元素功能的信息。 但是,客户端应用程序不能直接与提供程序一起使用。 相反,核心服务位于客户端和提供程序之间。 当客户端调用UI 自动化 API 时,它实际上是在调用UI 自动化核心服务,而核心服务又调用由提供程序实现的接口。

    若要获取对核心UI 自动化服务的访问权限,客户端必须创建 CUIAutomation 对象的实例,并在对象上检索 IUIAutomation 接口指针。 IUIAutomation 指针是客户端访问客户端可用的所有UI 自动化功能的密钥。 有关详细信息,请参阅 创建 CUIAutomation 对象

  2. 从UI 自动化树中检索 UI 元素的 IUIAutomationElement 接口。

    UI 自动化将单个 UI 元素公开为实现 IUIAutomationElement 接口的对象。 客户端可以通过元素的 IUIAutomationElement 接口公开的属性以及对该元素的控件模式的访问来获取有关元素的信息。 控件模式接口公开的属性和方法提供对特定于控件的信息和功能的访问权限。

    UI 自动化元素对象在称为UI 自动化树的分层树结构中提供给客户端。 客户端使用 IUIAutomation 接口公开的方法检索树中 UI 元素的 IUIAutomationElement 接口,并检索用于在树中搜索与特定条件集匹配的元素的其他接口。 有关详细信息,请参阅获取UI 自动化元素

    检索 UI 元素时,客户端可以使用 UI 自动化 的缓存功能来提高系统性能。 缓存使客户端能够指定要与 元素一起检索的一组属性和控件模式。 在单个进程间调用中,UI 自动化检索元素以及指定的属性和控件模式,然后将其存储在缓存中。 如果没有缓存,则需要单独的进程间调用来检索每个属性或控件模式。 有关详细信息,请参阅缓存UI 自动化属性和控件模式

  3. 检索 UI 元素属性并调用 UI 元素功能。

    客户端使用 IUIAutomationElement 接口检索元素的属性和控件模式。 接口包含每个属性检索方法的两个版本,一个版本从缓存中检索属性,另一个版本从提供程序检索属性。 有关详细信息,请参阅从UI 自动化元素检索属性

  4. 响应UI 自动化事件。

    UI 自动化提供程序通过引发事件来通知客户端 UI 中的更改或重要事件。 客户端必须确定所需的事件,然后实现并注册事件处理接口以接收和处理这些事件。 有关详细信息,请参阅订阅UI 自动化事件

概念性

UI 自动化树概述

UI 自动化属性概述

UI 自动化事件概述