辅助功能工具 - AccEvent (Accessible Event Watcher)

通过 AccEvent (Accessible Event Watcher),开发人员和测试人员可以验证应用程序 UI 元素在 UI 发生更改时是否引发恰当的 Microsoft UI 自动化和 Microsoft Active Accessibility 事件。 当焦点更改或 UI 元素被调用、选择或发生状态或属性更改时,UI 可能会更改。

AccEvent 随 Windows 软件开发工具包 (SDK) 一起安装。 它位于 SDK 安装路径的 \bin\<version>\<platform> 文件夹中 (Accevent.exe)。

注意

AccEvent 是一个旧工具。 建议改为使用 Accessibility Insights

要求

AccEvent 可用于检查没有 UI 自动化的系统上的辅助功能数据,它最初是为 Microsoft Active Accessibility 编写的。 若要检查 UI 自动化,UI 自动化必须存在于系统上。 有关详细信息,请参阅 UI 自动化的“要求”部分。

AccEvent 作为 Windows SDK 中整体工具集的一部分进行安装,它不会作为单独的 exe 下载项进行分发。 Windows SDK 包括本部分所述的所有与辅助功能相关的工具。 获取 Windows SDK。 (如果需要以前的版本,还可从该页面链接到 SDK 下载存档。)

如果要运行 AccEvent,请在 \bin\<version>\<platform> 文件夹中找到 AccEvent.exe 并运行它(通常不需要以管理员身份运行)。

Accessible Event Watcher 窗口

启动 AccEvent 时,将显示主窗口。 AccEvent 主窗口显示正在运行的应用程序引发的 UI 自动化或 Microsoft Active Accessibility 事件。 主窗口包含以下主要部分:

  • 标题栏。 显示当前操作模式和状态。
  • 菜单栏。 提供对 AccEvent 功能的访问
  • 数据视图。 显示有关每个事件的信息,包括引发事件的 UI 元素的事件 ID 和所选属性。

AccEvent 只有图形用户界面;此工具没有命令行参数,但你可以使用其他工具将输出日志作为文本进行处理

下图显示了 AccEvent 主窗口

the user interface for the accessible event watcher tool

Accessible Event Watcher 任务

本部分包含有关常用 AccEvent 任务的信息

配置操作模式

使用“模式”菜单配置 AccEvent 操作模式,并选择控制工具行为的设置。 可以选择下列选项。

选中此选项后 AccEvent 执行此操作
总在最前面 显示在屏幕上的任何其他用户界面顶部。
UIA 事件 显示有关 UI 自动化事件的信息。
WinEvent(上下文中) 显示传递给服务器地址空间中的挂钩函数的 Microsoft Active Accessibility 事件 (WinEvent) 的相关信息。 有关详细信息,请参阅上下文中的挂钩函数
WinEvent(脱离上下文) 显示传递给客户端地址空间中的挂钩函数的 Microsoft Active Accessibility 事件 (WinEvent) 的相关信息。 有关详细信息,请参阅脱离上下文的挂钩函数
显示突出显示矩形 突出显示引发所选事件的 UI 元素周围的矩形。
显示信息工具提示 在工具提示中显示事件信息。
设置 显示“UIA 事件设置”或“WinEvent 设置”对话框

 

筛选 UI 自动化事件

若要配置 AccEvent 窗口中显示的 UI 自动化事件和属性,请单击“模式”菜单,选择“UIA 事件”,然后选择“设置”。 此时将显示“UIA 事件设置”对话框。 还可以使用此对话框筛选事件。

“UIA 事件设置”对话框包含以下窗格

  • 全局事件

    选择“FocusChangedEvent”复选框可显示有关全局焦点更改事件的信息

  • 事件类型

    选择感兴趣的事件。

  • 范围

    选择要让 AccEvent 侦听事件的 UI 元素

  • 添加的事件来源

    如果需要查看来自“范围”窗格中选择的 UI 元素的直接子元素的事件,请选择“直接子元素”。 如果要查看来自所有后代元素的事件,请选择“所有后代”

  • 报表属性

    选择要在主窗口中每个事件后显示的属性。 如果在“模式”菜单中选择了“显示信息工具提示”,则所选属性也会在工具提示中显示

筛选 Active Accessibility 事件

若要配置 AccEvent 窗口中显示的 Microsoft Active Accessibility 事件和属性,请单击“模式”菜单,选择“WinEvent(上下文中)”或“WinEvent(脱离上下文)”,然后选择“设置”。 此时将显示“WinEvent 设置”对话框。 还可以使用此对话框筛选事件。

“WinEvent 设置”对话框包含以下窗格

  • 对象

    选择要让 AccEvent 侦听事件的对象。 AccEvent 可以侦听源自窗口、光标或插入点的事件。 默认情况下会选择“窗口”

  • 事件

    选择感兴趣的事件。 默认情况下,所有事件都会显示。

  • 事件信息

    选择要在主窗口中每个事件名称后显示的信息。

  • 对象属性

    选择要在主窗口中每个事件后显示的属性。 如果在“模式”菜单中选择了“显示信息工具提示”,则所选属性也会在工具提示中显示。 默认情况下会选择“名称”、“角色”和“状态”

  • 筛选

    选择筛选部分的单选按钮之一,以筛选 hWND 字段中指定的窗口引发的事件。 默认情况下,“不筛选”单选按钮处于选中状态

    • 选择“排除”单选按钮可仅显示从指定窗口以外的对象引发的事件
    • 选择“仅包含”单选按钮,并指定一个或多个窗口句柄可仅显示从这些窗口引发的事件
    • 选中“和后代”复选框可包括指定窗口的后代引发的事件
  • 选项

    选择以下任何选项:

    选中此选项后 AccEvent 执行此操作
    使用 Invoke 使用 IDispatch::Invoke 检索对象属性,而不是使用 IAccessible 方法。
    始终获取对象(即使未选择任何对象属性) 检索与事件关联的对象,即使“对象属性”窗格中未选择任何项。
    显示默认属性(以及所选属性) 显示与事件关联的对象的默认属性(如果有)以及“对象属性”窗格中选择的项。
    显示不可见/隐藏窗口中的事件信息 显示所有对象(包括不可见或隐藏窗口中的对象)的“事件信息”窗格中的选定项。
    显示不可见/隐藏窗口中的完整事件信息 对于所有对象(包括不可见或隐藏窗口中的对象),显示“事件信息”窗格中的选定项,以及“对象属性”窗格中的选定(或默认)项。
    下一个事件的 DebugBreak 导致在产生下一个 WinEvent 的进程中出现断点异常。 这向调试程序发出了处理异常的信号。

使用“事件”菜单

使用“事件”菜单执行以下任务

选中此选项后 AccEvent 执行此操作
开始侦听 开始在“数据”视图中显示事件信息。
停止侦听 停止在“数据”视图中显示事件信息。
清除事件历史记录 清除“数据”视图的内容。
选择“所有事件” 选择“数据”视图中列出的所有事件。
复制所选事件 将所选事件复制到剪贴板。

保存 Active Accessibility 事件

若要开始将事件保存到文本文件,请打开“文件”菜单,然后选择“开始记录到文件”。 AccEvent 开始将事件写入指定文件,直到你从“文件”菜单中选择“停止日志记录”。 文本文件可用于稍后对事件进行故障排除和审查。