UI 自动化事件概述
Microsoft UI 自动化事件通知是辅助技术(如屏幕阅读器和屏幕放大镜)的关键功能。 这些 UI 自动化客户端跟踪由 UI 自动化提供程序引发的事件(当 UI 中发生一些事情时),并使用这些信息通知最终用户。
通过允许提供程序应用程序有选择地引发事件来提高效率,这具体取决于是否有客户端订阅了这些事件,或者如果没有客户端在侦听任意事件,则不会引发任何事件。
UI 自动化事件属于以下类别。
事件类别 | 说明 |
---|---|
属性更改 | 当UI 自动化元素或控件模式上的属性更改时引发。 例如,如果客户端需要监视应用程序复选框控件,它可以注册以侦听 IUIAutomationTogglePattern::CurrentToggleState 属性上的属性更改事件。 选中或取消选中该复选框控件时,提供程序会引发事件且客户端会采取必要的操作。 |
元素操作 | 当 UI 中的更改由最终用户或编程活动(例如,通过 IUIAutomationInvokePattern 单击或调用按钮时)引发。 |
结构更改 | 在 UI 自动化树的结构更改时引发。 当桌面上有新 UI 项变得可见、隐藏或删除时,结果便发生更改。 |
全局桌面更改 | 当与客户端相关的的全局操作发生时引发,例如当焦点从一个元素转换到另一个元素、或窗口关闭时。 |
通知 | 当应用调用 UiaRaiseNotificationEvent 函数时引发。 NotificationKind 指示通知的类型。 |
一些事件不一定意味着 UI 状态已更改。 例如,如果用户选项卡指向文本输入字段,然后单击一个按钮来更新字段,则引发 UIA_Text_TextChangedEventId 事件,即使用户实际上没有更改文本。 处理事件时,客户端应用程序在执行操作之前可能有必要检查是否实际发生了任何更改。
即使 UI 的状态未更改,也可能会引发以下事件。
- UIA_AutomationPropertyChangedEventId (,具体取决于已更改) 的属性
- UIA_SelectionItem_ElementSelectedEventId
- UIA_Selection_InvalidatedEventId
- UIA_Text_TextChangedEventId
有关所有UI 自动化事件的说明,请参阅事件标识符。
相关主题