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 オートメーション」を参照してください。For the latest information about UI オートメーションUI Automation, see Windows Automation API: UI Automation.

Microsoft UI オートメーションMicrosoft UI Automation は、Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)をサポートするすべてのオペレーティングシステムで使用できる Microsoft Windows 用の新しいアクセシビリティフレームワークです。is the new accessibility framework for Microsoft 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. たとえば、WPFWPF ボタンの Content プロパティ、Win32 ボタンの Caption プロパティ、および HTML イメージの ALT プロパティはすべて、Nameビューの1つのプロパティ UI オートメーションUI Automation にマップされます。For example, the Content property of a WPFWPF button, the Caption property of a Win32 button, and the ALT property of an HTML image are all mapped to a single property, Name, in the UI オートメーションUI Automation view.

UI オートメーションは、.NET Framework を実行している、サポートされている Windows オペレーティングシステムのすべての機能を提供します (「.NET Core 3.0 以降での .NET Core のシステム要件またはバージョンの .NET Framework」を参照してください)。UI Automation provides full functionality on supported Windows operating systems running the .NET Framework (see .NET Framework system requirements or versions of .NET Core starting with .NET Core 3.0.

UI オートメーションプロバイダーは、組み込みのブリッジングサービスを介して Microsoft Active Accessibility クライアントアプリケーションをサポートします。UI Automation providers offer some support for Microsoft 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
プロバイダー API (Uiautomationprovider.dll および Uiautomationtypes.dll)Provider API (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。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。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。All.
UI Automation Control TypesUI Automation Control Types さまざまなコントロール型でサポートされるプロパティとコントロール パターンに関する情報。Information about the properties and control patterns supported by different control types. All。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. WinEvents とは異なり、UI オートメーションUI Automation イベントは、ブロードキャスト機構に基づいていません。Unlike WinEvents, 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