UI オートメーションの概要UI Automation Overview

注意

このドキュメントは、UI 自動化UI Automation 名前空間で定義されているマネージ System.Windows.Automation クラスを使用する .NET Framework 開発者を対象としています。This documentation is intended for .NET Framework developers who want to use the managed UI 自動化UI Automation classes defined in the System.Windows.Automation namespace. UI 自動化UI Automationの最新情報については、「 Windows Automation API: UI Automation (Windows のオートメーション API: UI オートメーション)」を参照してください。For the latest information about UI 自動化UI Automation, see Windows Automation API: UI Automation.

Microsoft UI オートメーションMicrosoft UI Automation は、 Microsoft WindowsMicrosoft Windowsをサポートするすべてのオペレーティング システムで利用可能な、 Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)の新しいアクセシビリティ フレームワークです。 is the new accessibility framework for Microsoft WindowsMicrosoft Windows, available on all operating systems that support Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF).

UI 自動化UI Automation は、デスクトップ上のほとんどの ユーザー インターフェイス (UI)user interface (UI) 要素へのプログラムによるアクセスを提供し、スクリーン リーダーなどの補助技術製品が UIUI に関する情報をエンド ユーザーに提供したり、標準入力方式以外の方法で UIUI を操作したりできるようにします。 provides programmatic access to most ユーザー インターフェイス (UI)user interface (UI) elements on the desktop, enabling assistive technology products such as screen readers to provide information about the UIUI to end users and to manipulate the UIUI by means other than standard input. また、UI 自動化UI Automation は、自動テスト スクリプトが UIUIと対話できるようにします。UI 自動化UI Automation also allows automated test scripts to interact with the UIUI.

注意

UI 自動化UI Automation 別のユーザーによって開始されたプロセスの間の通信を有効にしません、として実行コマンド。 does not enable communication between processes started by different users through the Run as command.

UI オートメーション クライアント アプリケーションを作成すると、そのアプリケーションは、複数のフレームワーク上で動作することが保証されます。UI Automation client applications can be written with the assurance that they will work on multiple frameworks. UI 自動化UI Automation コアは、 UIUIのさまざまな部分の基になるフレームワークのあらゆる差異をマスクします。The UI 自動化UI Automation core masks any differences in the frameworks that underlie various pieces of UIUI. たとえば、 Content のボタンの WPFWPF プロパティ、 Caption のボタンの Win32Win32 プロパティ、および HTML イメージの ALT プロパティは、 Nameビュー内では、すべて単一のプロパティ、つまり UI 自動化UI Automation にマップされます。For example, the Content property of a WPFWPF button, the Caption property of a Win32Win32 button, and the ALT property of an HTML image are all mapped to a single property, Name, in the UI 自動化UI Automation view.

UI 自動化UI Automation の完全な機能は、 Windows VistaWindows VistaMicrosoft Windows XPMicrosoft Windows XP、および Windows Server 2003Windows Server 2003で利用できます。 provides full functionality in Windows VistaWindows Vista, Microsoft Windows XPMicrosoft Windows XP, and Windows Server 2003Windows Server 2003.

UI オートメーション プロバイダーは、組み込みのブリッジ サービスを通じて、 Microsoft Active AccessibilityMicrosoft Active Accessibility クライアント アプリケーションを一部サポートします。UI Automation providers offer some support for Microsoft Active AccessibilityMicrosoft Active Accessibility client applications, through a built-in bridging service.

プロバイダーおよびクライアントProviders and Clients

UI 自動化UI Automation には、次の表に示す 4 つの主要なコンポーネントがあります。 has four main components, as shown in the following table.

コンポーネントComponent 説明Description
プロバイダー APIAPI (UIAutomationProvider.dll および UIAutomationTypes.dll)Provider APIAPI (UIAutomationProvider.dll and UIAutomationTypes.dll) UI オートメーション プロバイダーによって実装されるインターフェイス定義のセット。 UIUI 要素に関する情報を提供し、プログラムによる入力に応答するオブジェクトです。A set of interface definitions that are implemented by UI Automation providers, objects that provide information about UIUI elements and respond to programmatic input.
クライアント API (UIAutomationClient.dll および UIAutomationTypes.dll)Client API (UIAutomationClient.dll and UIAutomationTypes.dll) UI オートメーション クライアント アプリケーションが、 UIUI に関する情報を取得し、コントロールに入力を送信することを可能にする、各種マネージ コードのセット。A set of types for managed code that enables UI Automation client applications to obtain information about the UIUI and to send input to controls.
UiAutomationCore.dllUiAutomationCore.dll プロバイダーとクライアントの間の通信を処理する、基になるコード ( UI 自動化UI Automation コアとも呼ばれます)。The underlying code (sometimes called the UI 自動化UI Automation core) that handles communication between providers and clients.
UIAutomationClientsideProviders.dllUIAutomationClientsideProviders.dll 従来の標準コントロールに使用する UI オートメーション プロバイダーのセット。A set of UI Automation providers for standard legacy controls. (WPFWPF コントロールは UI 自動化UI Automationをネイティブにサポートします)。このサポートは、クライアント アプリケーションに対して自動的に有効になります。(WPFWPF controls have native support for UI 自動化UI Automation.) This support is automatically available to client applications.

ソフトウェア開発者の観点からは、 UI 自動化UI Automationを使用するには、カスタム コントロール用のサポートを作成する (プロバイダー API を使用) か、または UI 自動化UI Automation コアを使用して UIUI 要素と通信するアプリケーションを作成する (クライアント API を使用)、という 2 つの方法があります。From the software developer's perspective, there are two ways of using UI 自動化UI Automation: to create support for custom controls (using the provider API), and creating applications that use the UI 自動化UI Automation core to communicate with UIUI elements (using the client API). 主要な目的に応じて、ドキュメントの該当箇所を参照してください。Depending on your focus, you should refer to different parts of the documentation. 次の各セクションでは、概念の詳細と、実際的な方法について説明します。You can learn more about the concepts and gain practical how-to knowledge in the following sections.

セクションSection 主題Subject matter 対象ユーザーAudience
UI オートメーションの基礎(このセクション)UI Automation Fundamentals (this section) 概念についての広範な概要。Broad overviews of the concepts. すべて。All.
マネージ コードの UI オートメーション プロバイダーUI Automation Providers for Managed Code プロバイダー API を使用する際に役立つ概要と「方法」トピック。Overviews and how-to topics to help you use the provider API. コントロールの開発者。Control developers.
マネージ コードの UI オートメーション クライアントUI Automation Clients for Managed Code クライアント API を使用する際に役立つ概要と「方法」トピック。Overviews and how-to topics to help you use the client API. クライアント アプリケーションの開発者。Client application developers.
UI オートメーション コントロール パターンUI Automation Control Patterns コントロール パターンをプロバイダーで実装する方法と、クライアントで使用可能な機能に関する情報。Information about how control patterns should be implemented by providers, and what functionality is available to clients. すべて。All.
UI オートメーション テキスト パターンUI Automation Text Pattern Text コントロール パターンをプロバイダーで実装する方法と、クライアントで使用可能な機能に関する情報。Information about how the Text control pattern should be implemented by providers, and what functionality is available to clients. すべて。All.
UI Automation Control TypesUI Automation Control Types さまざまなコントロール型でサポートされるプロパティとコントロール パターンに関する情報。Information about the properties and control patterns supported by different control types. すべて。All.

UI 自動化UI Automation の名前空間、それらの名前空間を含む DLL、およびそれらを使用する対象ユーザーを次の表に示します。The following table lists UI 自動化UI Automation namespaces, the DLLs that contain them, and the audience that uses them.

名前空間Namespace 参照される DLLReferenced DLLs 対象ユーザーAudience
System.Windows.Automation UIAutomationClientUIAutomationTypesUIAutomationClientUIAutomationTypes UI オートメーション クライアントの開発者。 AutomationElement オブジェクトの検索、 UI 自動化UI Automation イベントの登録、 UI 自動化UI Automation のコントロール パターンの利用の際に使用します。UI Automation client developers; used to find AutomationElement objects, register for UI 自動化UI Automation events, and work with UI 自動化UI Automation control patterns.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypesUIAutomationProviderUIAutomationTypes WPFWPF以外のフレームワークの UI オートメーション プロバイダーの開発者。Developers of UI Automation providers for frameworks other than WPFWPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypesUIAutomationClientUIAutomationTypes WPFWPF以外のフレームワークで使用する UI オートメーション プロバイダーの開発者が、TextPattern コントロール パターンを実装する際に使用します。Developers of UI Automation providers for frameworks other than WPFWPF; used to implement the TextPattern control pattern.
System.Windows.Automation.Peers PresentationFrameworkPresentationFramework WPFWPFで使用する UI オートメーション プロバイダーの開発者。Developers of UI Automation providers for WPFWPF.

UI オートメーション モデルUI Automation Model

UI 自動化UI Automation は、 UIUI のすべての部分を、クライアント アプリケーションに対して、 AutomationElementとして公開します。 exposes every piece of the UIUI to client applications as an AutomationElement. 各要素は、デスクトップをルート要素とするツリー構造に格納されます。Elements are contained in a tree structure, with the desktop as the root element. クライアントでは、ツリーの未加工ビューを、コントロール ビューまたはコンテンツ ビューとしてフィルター処理できます。Clients can filter the raw view of the tree as a control view or a content view. アプリケーションでは、カスタム ビューを作成することもできます。Applications can also create custom views.

AutomationElement オブジェクトは、それらが表す UIUI 要素の一般的なプロパティを公開します。AutomationElement objects expose common properties of the UIUI elements they represent. これらのプロパティの 1 つにコントロール型があります。これは、その基本的な外観と機能を認識可能な単一のエンティティとして定義するもので、ボタンやチェック ボックスなどがその例です。One of these properties is the control type, which defines its basic appearance and functionality as a single recognizable entity: for example, a button or check box.

また、各要素は、そのコントロール型に固有のプロパティを提供するコントロール パターンも公開します。In addition, elements expose control patterns that provide properties specific to their control types. コントロール パターンは、クライアントが要素に関するより詳細な情報を取得し、入力を提供できるようにするメソッドも公開します。Control patterns also expose methods that enable clients to get further information about the element and to provide input.

注意

コントロール型とコントロール パターンの間には、1 対 1 の対応はありせん。There is not a one-to-one correspondence between control types and control patterns. 1 つのコントロール パターンが複数のコントロール型でサポートされる場合もありますし、1 つのコントロールが複数のコントロール パターンをサポートし、各パターンがそのコントロールの動作の異なる側面を公開する場合もあります。A control pattern may be supported by multiple control types, and a control may support multiple control patterns, each of which exposes different aspects of its behavior. たとえば、1 つのコンボ ボックスは、少なくとも 2 つのコントロール パターンを持ちます。1 つは、それを展開して折りたたむ機能を表し、もう 1 つは、選択機構を表します。For example, a combo box has at least two control patterns: one that represents its ability to expand and collapse, and another that represents the selection mechanism. 詳しくは、「 UI Automation Control Types」をご覧ください。For specifics, see UI Automation Control Types.

また、UI 自動化UI Automation は、クライアント アプリケーションにイベントを通じて情報を提供します。UI 自動化UI Automation also provides information to client applications through events. WinEventsWinEventsとは異なり、 UI 自動化UI Automation のイベントは、ブロードキャスト機構に基づいていません。Unlike WinEventsWinEvents, UI 自動化UI Automation events are not based on a broadcast mechanism. UI 自動化UI Automation のクライアントは、特定のイベント通知を登録し、特定の UI 自動化UI Automation プロパティとコントロール パターン情報を自身のイベント ハンドラーに渡すように要求することができます。 clients register for specific event notifications and can request that specific UI 自動化UI Automation properties and control pattern information be passed into their event handlers. また、 UI 自動化UI Automation イベントには、原因となった要素への参照が含まれています。In addition, a UI 自動化UI Automation event contains a reference to the element that raised it. プロバイダーはイベントを選択的に発生させることによってパフォーマンスを向上させることができますが、クライアントがリッスンしているかどうかによって異なりますProviders can improve performance by raising events selectively, depending on whether any clients are listening.

関連項目See Also

UI Automation ツリーの概要UI Automation Tree Overview
UI Automation コントロール パターンの概要UI Automation Control Patterns Overview
UI オートメーション プロパティの概要UI Automation Properties Overview
UI オートメーション イベントの概要UI Automation Events Overview
UI オートメーションのセキュリティの概要UI Automation Security Overview