UI 自动化事件概述

Microsoft UI 自动化事件通知是辅助技术的一项重要功能,如屏幕读取器和屏幕放大器。 这些 UI 自动化客户端跟踪 ui 自动化提供程序引发的事件(当 UI 中发生问题时),并使用该信息通知最终用户。

通过允许提供程序应用程序有选择地引发事件来提高效率,这具体取决于是否有客户端订阅了这些事件,或者如果没有客户端在侦听任意事件,则不会引发任何事件。

UI 自动化事件属于以下类别。

事件类别 说明
属性更改 UI 自动化元素或控件模式上的属性更改时引发。 例如,如果客户端需要监视应用程序复选框控件,它可以注册来侦听 IUIAutomationTogglePattern:: CurrentToggleState 属性上的属性更改事件。 选中或取消选中该复选框控件时,提供程序会引发事件且客户端会采取必要的操作。
元素操作 当用户或编程活动的 UI 结果发生更改时(例如,单击按钮或通过 IUIAutomationInvokePattern调用)时引发。
结构更改 在 UI 自动化树的结构更改时引发。 当桌面上有新 UI 项变得可见、隐藏或删除时,结果便发生更改。
全局桌面更改 当与客户端相关的的全局操作发生时引发,例如当焦点从一个元素转换到另一个元素、或窗口关闭时。
通知 当应用程序调用 UiaRaiseNotificationEvent 函数时引发。 NotificationKind 指示通知的类型。

一些事件不一定意味着 UI 状态已更改。 例如,如果用户通过 tab 键切换到文本输入字段,然后单击一个按钮更新该字段,则会引发 UIA _ text _ TextChangedEventId 事件,即使用户实际上未更改文本也是如此。 处理事件时,客户端应用程序在执行操作之前可能有必要检查是否实际发生了任何更改。

即使 UI 的状态未更改,也可能会引发以下事件。

有关所有 UI 自动化事件的说明,请参阅 事件标识符

订阅 UI 自动化事件