共用方式為


UI 自動化提供者概觀

更新:2007 年 11 月

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

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

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

這個主題包含下列章節。

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

提供者類型

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

用戶端提供者

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

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

伺服器端提供者

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

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

UI 自動化提供者概念

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

項目

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

巡覽

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 自動化服務中扮演重要角色。可在片段根目錄中進行巡覽並提供某些預設屬性,讓自訂提供者不需要進行實作。

請參閱

概念

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