UI 自動化提供者概觀
Microsoft UI 自動化提供者是一種軟體物件,提供應用程式 UI 的元素,讓輔助技術用戶端應用程式可以擷取元素的相關資訊並調用其功能。 一般而言,UI 中的每個控制項或其他獨立元素都有提供者。
Microsoft 為每個標準控制項提供提供者,這些控制項隨附於 Microsoft 的 Win32、Windows Forms 和 Windows Presentation Foundation(WPF)。 這表示標準控件會自動公開給UI自動化用戶端;您不需要實作標準控件的任何輔助功能介面。
如果您的應用程式包含任何自定義控制項,您必須實作這些控制件的 UI 自動化提供者,使其可供輔助功能用戶端應用程式存取。 您也需要為不包含提供者的任何第三方控件實作提供者。 您需要透過實作 UI 自動化提供者介面和控制模式介面來實作提供者。
本主題提供控制項開發人員如何實作 UI 自動化提供者的概述。 其中包含下列各節。
- 提供者類型
- UI 自動化提供者概念
- 相關主題
提供者類型
使用者介面自動化提供者分為兩種類別:伺服器端提供者和用戶端 (或 Proxy) 提供者。
伺服器端提供者是一個物件,例如自定義控件,其中包含其本身相關 UI 自動化提供者介面的原生實作。 伺服器端提供者透過將其提供者介面的實作公開給 UI 自動化核心,來與用戶端應用程式在程序邊界外進行通訊,以服務來自用戶端的要求。 如需關於伺服器端的自動化提供者的詳細資訊,請參閱 實作 Server-Side 使用者介面自動化提供者。
用戶端提供者或 Proxy 是代表控件實作 UI 自動化提供者介面的物件,不包含本身的完整提供者實作。 如果沒有 Proxy,這類控件對於 UI 自動化來說基本上是不可見的,它只能從視窗句柄(HWND)中提供例如控件位置的基本資訊。 Proxy 提供者通常會透過傳送和接收 Windows 訊息,跨進程界限與應用程式通訊。 如需詳細資訊,請參閱 實作 Client-Side (Proxy) UI 自動化提供者。
UI 自動化提供者概念
本節提供您需要瞭解的一些重要概念的簡短說明,以實作 UI 自動化提供者。
元素
使用者介面自動化元素是UI自動化用戶端可看見的UI片段,通常是視窗或控件。 範例包括應用程式視窗、窗格、按鈕、工具提示、清單和清單項目。
UI 自動化元素會以樹狀結構的形式公開給用戶端。 使用者介面自動化會藉由從一個元素巡覽到另一個元素來建構樹狀結構。 導覽是由每個元素的提供者所啟用。 每個元素都可以指向它自己的父元素、其兄弟元素,以及其第一個和最後一個子元素。
用戶端可以在三個主要檢視中看到UI自動化樹狀結構,如下表所述:
查看 | 描述 |
---|---|
原始檢視 | 包含所有元素。 |
控件檢視 | 包含控制元件的元素。 |
內容檢視 | 包含將資訊傳達給使用者的控件元素。 |
提供者實作有責任將元素定義為內容元素或控制元素。 控件元素不一定也是內容元素,但所有內容元素都是控件元素。
如需樹狀結構客戶端檢視的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
框架
架構是一個元件,可管理螢幕區域中的子控件、點擊測試及轉譯。 例如,Win32 視窗通常稱為 HWND,可作為包含多個 UI 自動化元素的架構,例如功能表欄、狀態列和按鈕。
Win32 容器控制項,例如清單框和樹狀結構控制項會被視為架構,因為它們包含自己的程式代碼來繪製子項目,並進行命中測試。 相較之下,WPF 清單框不是一個架構,因為渲染和點擊測試是由包含的視窗處理的。
應用程式中的UI可以由不同的架構所組成。 例如,應用程式中的 HWND 可能包含動態 HTML(DHTML),而動態 HTML(DHTML)則可能包含元件,例如 HWND中的下拉式方塊。
碎片
在特定架構中,一組完整的元素子樹稱為片段。 子樹根節點的元素稱為片段根節點。 片段根沒有父元素,但嵌入在其他框架內,通常是 Win32 視窗(HWND)。
主持人 / 主辦方
每個片段的根節點都必須裝載於元素中,通常是 Win32 視窗(HWND)。 例外狀況是桌面,它未裝載於任何其他元素中。 自定義控制元件的主機是控制項本身 HWND,而不是應用程式視窗或任何其他可能包含最上層控制件群組的視窗。
片段的主機在提供UI自動化服務方面扮演著重要的角色。 它可讓您流覽至片段根目錄,並提供一些預設屬性,讓自定義提供者不需要實作它們。
相關主題