UI 自動化事件概觀
Microsoft 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 自動化事件的描述,請參閱 事件識別碼。
相關主題