UI 自動化提供者概觀

注意

本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化

使用者介面自動化提供者可以讓控制項與使用者介面自動化用戶端應用程式進行通訊。 一般而言,使用者介面 (UI) 中的每個控制項或其他不同元素都是由提供者表示。 提供者會公開項目的相關資訊並選擇性地實作控制項模式,讓用戶端應用程式與控制項互動。

用戶端應用程式通常不會直接與提供者搭配使用。 在使用 Win32、Windows Forms 或 Windows Presentation Foundation (WPF) 架構的應用程式中,大部分的標準控制項都會自動對 UI 自動化系統公開。 實作自訂控制項的應用程式也會實作那些控制項的 UI 自動化提供者;因此,用戶端應用程式不需要採取任何特殊步驟,即可加以存取。

本主題提供控制項開發人員如何實作 UI 自動化提供者的概觀,特別是針對 Windows Forms 和 Win32 視窗中的控制項。

提供者類型

使用者介面自動化提供者分為兩類:用戶端提供者和伺服器端提供者。

用戶端提供者

用戶端提供者由使用者介面自動化用戶端實作,以便與不支援或不完全支援 UI 自動化的應用程式通訊。 用戶端提供者通常會透過傳送和接收 Windows 訊息,與跨處理序界限的伺服器通訊。

因為 Win32、Windows Forms 或 WPF 應用程式之控制項的使用者介面自動化提供者,即屬於作業系統的一部分,所以用戶端應用程式很少會實作自己的提供者,此概觀也不會涵蓋這些提供者的進一步資訊。

伺服器端提供者

伺服器端提供者是由自訂控制項或以 Win32、Windows Forms 或 WPF 以外之使用者介面架構為基礎的應用程式所實作。

伺服器端提供者會將介面公開至 UI 自動化核心系統,與跨處理序邊界的用戶端應用程式通訊,此核心系統之後會接續處理用戶端的要求。

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

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

元素

UI 自動化元素是對 UI 自動化用戶端顯示的使用者介面 (UI) 部分。 範例包含應用程式視窗、窗格、按鈕、工具提示、清單方塊和清單項目。

UI 自動化元素會以 UI 自動化樹狀結構的形式向用戶端公開。 UI 自動化會在元素之間巡覽以建構樹狀結構。 巡覽功能是由每個項目的提供者啟用,每個提供者各指向父代、同層級和子系。

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

檢視

用戶端可在三個主要檢視中檢視 UI 自動化樹狀結構,如下表所示。

檢視 描述
未經處理的檢視 包含所有項目。
控制項檢視 包含做為控制項的項目。
內容檢視 包含擁有內容的項目。

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

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

架構

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

Win32 容器控制項 (例如清單方塊和樹狀結構檢視) 都會被視為架構,因為他們都包含自己的程式碼,以呈現子項目並在其上執行點擊測試。 相對地,WPF 清單方塊就不是架構,因為呈現和點擊測試是由其中包含的 WPF 視窗所處理。

應用程式中的 UI 可由不同架構組成。 例如,HWND 應用程式視窗可能包含動態 HTML (DHTML),會依序在 HWND 中包含下拉式方塊此類的元件。

片段

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

主控件

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

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

另請參閱