UI 自動化提供者概觀

Microsoft 消費者介面自動化提供者是一種軟體物件,會公開應用程式 UI 的元素,讓協助工具用戶端應用程式可以擷取元素的相關資訊並叫用其功能。 一般而言,UI 中的每個控制項或其他相異專案都有提供者。

Microsoft 包含 Microsoft Win32、Windows Forms 和 Windows Presentation Foundation (WPF) 所提供的每個標準控制項提供者。 這表示標準控制項會自動公開給消費者介面自動化用戶端;您不需要實作標準控制項的任何協助工具介面。

如果您的應用程式包含任何自訂控制項,您必須為這些控制項實作消費者介面自動化提供者,使其可供協助工具用戶端應用程式存取。 您也需要為不包含提供者的任何協力廠商控制項實作提供者。 您可以實作提供者,方法是實作消費者介面自動化提供者介面和控制模式介面。

本主題提供控制項開發人員如何實作消費者介面自動化提供者的概觀。 其中包含下列各節。

提供者類型

消費者介面自動化提供者分為兩種類別:伺服器端提供者,以及用戶端 (或Proxy) 提供者。

伺服器端提供者是物件,例如自訂控制項,其中包含其本身的原生實作相關消費者介面自動化提供者介面。 伺服器端提供者會將其提供者介面的實作公開給用戶端要求消費者介面自動化核心,以跨進程界限與用戶端應用程式通訊。 如需伺服器端提供者的詳細資訊,請參閱實作Server-Side 消費者介面自動化提供者

用戶端提供者或 Proxy 是代表控制項實作消費者介面自動化提供者介面的物件,不包含本身的完整提供者實作。 如果沒有 Proxy,這類控制項主要是不透明的消費者介面自動化,這只能提供從視窗控制碼 (HWND) 取得的基本資訊,例如控制項位置。 Proxy 提供者通常會透過傳送和接收 Windows 訊息,跨進程界限與應用程式通訊。 如需詳細資訊,請參閱實作 Client-Side (Proxy) 消費者介面自動化 提供者

使用者介面自動化提供者概念

本節提供某些主要概念的簡短說明,讓您了解以便實作使用者介面自動化提供者。

元素

消費者介面自動化元素是消費者介面自動化用戶端可見的 UI 片段,通常是視窗或控制項。 範例包含應用程式視窗、窗格、按鈕、工具提示、清單方塊和清單項目。

消費者介面自動化專案會公開給用戶端做為樹狀結構。 UI 自動化會在元素之間巡覽以建構樹狀結構。 每個元素的提供者都會啟用導覽。 每個元素都可以指向自己的父元素、其同層級專案,以及其第一個和最後一個子項目。

用戶端可以在三個主體檢視中看到消費者介面自動化樹狀結構,如下表所述:

檢視 描述
未經處理的檢視 包含所有元素。
控制項檢視 包含屬於控制項的元素。
內容檢視 包含將資訊傳達給使用者的控制項元素。

 

提供者實作負責將項目定義為內容項目或控制項項目。 控制項不一定是內容項目,但所有的內容項目都會是控制項項目。

如需樹狀結構用戶端檢視的詳細資訊,請參閱消費者介面自動化樹狀結構概觀

架構

架構是一個元件,管理該畫面區域的子控制項、點擊測試和呈現。 例如,通常稱為HWND的 Win32 視窗可作為包含多個消費者介面自動化元素的架構,例如功能表列、狀態列和按鈕。

Win32 容器控制項,例如清單方塊和樹狀檢視控制項會被視為架構,因為它們包含自己的程式碼來轉譯子專案,並在其中執行點擊測試。 相較之下,WPF 清單方塊不是架構,因為包含視窗正在處理轉譯和點擊測試。

應用程式中的 UI 可由不同架構組成。 例如,應用程式中的 HWND 可能包含動態 HTML (DHTML) ,而後者可以包含 HWND中的下拉式方塊之類的元件。

片段

來自特定架構之專案的完整子樹稱為片段。 子樹狀結構之根目錄節點的項目稱為片段根目錄。 片段根目錄沒有父代,但裝載于一些其他架構內,通常是 Win32 視窗 (HWND) 。

主機

每個片段的根節點都必須裝載在 元素中,通常是 Win32 視窗 (HWND) 。 例外狀況是桌面,桌面並沒有裝載於任何其他項目中。 自訂控制項的主機是控制項本身的 HWND ,而不是應用程式視窗或任何其他可能包含最上層控制項群組的視窗。

片段的裝載對於提供 UI 自動化服務扮演重要角色。 可在片段根目錄中進行巡覽並提供某些預設屬性,讓自訂提供者不需要進行實作。

概念

實作Client-Side 消費者介面自動化提供者

實作Server-Side 消費者介面自動化提供者

UI 自動化樹狀目錄概觀