UI 自動化概觀
注意事項 |
---|
這份文件適用於想要使用 System.Windows.Automation 命名空間中定義之 Managed UI Automation 類別的 .NET Framework 開發人員。如需 UI Automation 的最新資訊,請參閱 Windows Automation API:使用者介面自動化 (英文)。 |
Microsoft UI Automation是 Microsoft Windows 的新協助工具架構,可在所有支援 Windows Presentation Foundation (WPF) 的作業系統上使用。
UI Automation會以程式設計方式存取桌面上大部分的user interface (UI) 項目,啟用輔助技術產品 (例如螢幕助讀員),以便為使用者提供 UI 的相關資訊,以及使用標準輸入以外的方式來操作 UI。 UI Automation也可以讓自動化測試指令碼與 UI 互動。
注意事項 |
---|
UI Automation不支援不同使用者透過 [Run as] 命令,來啟動處理序之間進行通訊的功能。 |
撰寫 UI 自動化用戶端應用程式時可以保證應用程式可在多個架構上運作。 UI Automation核心可以降低組成 UI 各種元件之架構的任何差異。 例如,WPF 按鈕的 Content 屬性、Win32 按鈕的 Caption 屬性以及 HTML 影像的 ALT 屬性,都會對應至 UI Automation檢視中的單一屬性 Name。
UI Automation提供 Windows Vista、Microsoft Windows XP 和 Windows Server 2003 中的完整功能。
UI 自動化提供者會透過內建的橋接服務,為 Microsoft Active Accessibility 用戶端應用程式提供某些支援。
這個主題包含下列章節。
- 提供者和用戶端
- UI Automation 模型
- 相關主題
提供者和用戶端
UI Automation具有四個主要元件,如下表所示。
元件 |
說明 |
---|---|
提供者 API (UIAutomationProvider.dll 和 UIAutomationTypes.dll) |
一組由 UI 自動化提供者實作的介面定義,提供 UI 項目之相關資訊,以及對程式設計輸入做出回應的物件。 |
用戶端 API (UIAutomationClient.dll 與 UIAutomationTypes.dll) |
一組 Managed 程式碼,可讓 UI 自動化用戶端應用程式取得 UI 的相關資訊,並將輸入傳送至控制項。 |
UiAutomationCore.dll |
基礎程式碼 (有時稱為 UI Automation核心) 會處理提供者和用戶端之間的通訊。 |
UIAutomationClientsideProviders.dll |
一組適用於標準舊版控制項的 UI 自動化提供者 (WPF 控制項具有 UI Automation的原生支援)。這個支援將會自動可供用戶端應用程式使用。 |
就軟體開發人員的觀點而言,使用 UI Automation的方法有兩種:建立自訂控制項 (使用提供者 API) 的支援,以及建立使用 UI Automation核心與 UI 項目 (使用用戶端 API) 通訊的應用程式。 根據所著重的部分,您應該參閱文件的不同部分。 您可以進一步了解概念並在下列章節中取得實際的 HOW TO 知識。
章節 |
主題 |
適用對像 |
---|---|---|
UI 自動化基礎觀念 (本章節內容) |
概念概觀淺論。 |
全部。 |
協助您使用提供者 API 的概觀及 HOW TO 主題。 |
控制項開發人員。 |
|
協助您使用用戶端 API 的概觀及 HOW TO 主題。 |
用戶端應用程式開發人員。 |
|
提供者應如何實作控制項模式,以及哪些功能可供用戶端使用的相關資訊。 |
全部。 |
|
提供者應如何實作「文字」控制項模式,以及哪些功能可供用戶端使用的相關資訊。 |
全部。 |
|
不同控制項型別支援之屬性和控制項模式的相關資訊。 |
全部。 |
下表會列出 UI Automation命名空間、包含這些命名空間的 DLL 以及命名空間的適用對象。
命名空間 |
參考的 DLL |
適用對像 |
---|---|---|
UIAutomationClientUIAutomationTypes |
UI 自動化用戶端開發人員;用於尋找 AutomationElement 物件、註冊 UI Automation事件以及使用 UI Automation控制項模式。 |
|
UIAutomationProviderUIAutomationTypes |
WPF 以外之架構的 UI 自動化提供者開發人員。 |
|
UIAutomationClientUIAutomationTypes |
WPF 以外之架構的 UI 自動化提供者開發人員;用於實作 TextPattern 控制項模式。 |
|
PresentationFramework |
WPF 的 UI 自動化提供者開發人員。 |
UI Automation 模型
UI Automation會將 UI 的每個部分公開給用戶端應用程式,做為 AutomationElement。 項目包含於樹狀結構中,且桌面是根項目。 用戶端可將樹狀目錄之未經處理的檢視篩選為控制項檢視或內容檢視 (使用此software development kit (SDK) 隨附的 UI Spy 應用程式,即可輕鬆顯示這些標準的結構檢視)。應用程式也可以建立自訂檢視。
AutomationElement 物件會公開其所代表之 UI 項目的常見屬性。 其中一個屬性是控制項型別,它會將其基本外觀和功能定義為單一可辨識的實體 (Entity):例如,按鈕或核取方塊。
此外,項目還會公開控制項模式,用以提供其控制項型別專用的屬性。 控制項模式也會公開方法,讓用戶端取得項目的進一步資訊及提供輸入。
注意事項 |
---|
控制項類型和控制項模式之間並不存在一對一的對應關係。控制項模式可由多個控制項類型所支援,且控制項可支援多個控制項模式,每個控制項都會公開其行為的不同層面。例如,下拉式方塊擁有至少兩個控制項模式:其中一個代表展開和折疊的能力,另一個則代表選取機制。如需取得特定資訊,請參閱 UI 自動化控制項型別。 |
UI Automation也可以透過事件,將資訊提供給用戶端應用程式。 與 WinEvents 不同的是,UI Automation事件並不是以廣播機制為基礎。 UI Automation用戶端會註冊特定事件通知,且可以要求將特定的 UI Automation屬性和控制項模式資訊傳遞至所屬的事件處理常式。 此外,UI Automation 事件也包含引發它之項目的參考。提供者可以根據是否有任何用戶端在接聽,選擇性引發事件來改進效能。