共用方式為


UI 自動化提供者概觀

注意事項注意事項

這份文件適用於想要使用 System.Windows.Automation 命名空間中定義之 Managed UI Automation 類別的 .NET Framework 開發人員。如需 UI Automation 的最新資訊,請參閱 Windows Automation API:使用者介面自動化 (英文)。

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

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

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

這個主題包含下列章節。

  • 提供者類型
  • UI 自動化提供者概念
  • 相關主題

提供者類型

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

用戶端提供者

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

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

伺服器端提供者

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

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

UI 自動化提供者概念

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

項目

UI Automation項目 (Element) 是對 UI 自動化用戶端顯示的user interface (UI) 部分。 範例包含應用程式視窗、窗格、按鈕、工具提示、清單方塊和清單項目 (List Item)。

巡覽

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

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

檢視

用戶端可在三個主要檢視中檢視 UI Automation樹狀目錄,如下表所示。

未經處理的檢視

包含所有項目

控制項檢視

包含做為控制項的項目。

內容檢視

包含擁有內容的項目。

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

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

架構

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

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

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

片段

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

主機

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

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

請參閱

概念

伺服器端 UI 自動化提供者實作