UI 자동화 개요UI Automation Overview

참고

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화UI 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 Microsoft WindowsMicrosoft Windows에 대한 새로운 접근성 프레임워크이며, WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)를 지원하는 모든 운영 체제에서 사용할 수 있습니다.is the new accessibility framework for Microsoft WindowsMicrosoft Windows, available on all operating systems that support WPF(Windows Presentation Foundation)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 Run as 명령을 통해 다른 사용자가 시작한 프로세스 간의 통신을 활성화하지 않습니다.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 자동화는 .NET Framework를 실행 하는 지원 되는 Windows 운영 체제에 대 한 모든 기능을 제공 합니다 (.NET Core 3.0부터 시작 하는 .NET Framework 시스템 요구 사항 또는 .net core 버전 참조).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 사용).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. 클라이언트는 트리의 Raw 보기를 컨트롤 뷰 또는 콘텐츠 뷰로 필터링할 수 있습니다.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. 이러한 속성 중 하나는 인식할 수 있는 단일 엔터티로 기본 모양과 기능을 정의하는 컨트롤 형식입니다(예: 단추 또는 확인란).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.

참고

컨트롤 형식과 컨트롤 패턴 간에 일대일 대응이 없습니다.There is not a one-to-one correspondence between control types and control patterns. 단일 컨트롤 패턴은 여러 컨트롤 형식에서 지원될 수 있으며, 단일 컨트롤에는 각각 해당 동작의 다양한 측면을 노출하는 여러 컨트롤 패턴을 지원할 수 있습니다.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. 예를 들어, 콤보 상자에 둘 이상의 컨트롤 패턴이 있을 수 있으며 그중 하나는 확장 및 축소하는 기능을 나타내며 나머지 하나는 선택 메커니즘을 나타냅니다.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