UI 자동화 공급자 개요UI Automation Providers 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.

UI 자동화 공급자를 통해 컨트롤이 UI 자동화 클라이언트 애플리케이션과 통신할 수 있습니다.UI Automation providers enable controls to communicate with UI Automation client applications. 일반적으로 UI(사용자 인터페이스)user interface (UI) 의 각 컨트롤 또는 기타 고유한 요소는 공급자가 나타냅니다.In general, each control or other distinct element in a UI(사용자 인터페이스)user interface (UI) is represented by a provider. 공급자는 요소에 대한 정보를 노출하고 클라이언트 애플리케이션이 컨트롤과 상호 작용하도록 하는 컨트롤 패턴을 구현합니다(선택적).The provider exposes information about the element and optionally implements control patterns that enable the client application to interact with the control.

클라이언트 애플리케이션은 일반적으로 공급자와 직접 작동될 필요가 없습니다.Client applications do not usually have to work directly with providers. Win32Win32, Windows FormsWindows Forms또는 WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 프레임워크를 사용하는 응용 프로그램에서 대부분의 컨트롤은 UI 자동화UI Automation 시스템에 자동으로 노출됩니다.Most of the standard controls in applications that use the Win32Win32, Windows FormsWindows Forms, or WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) frameworks are automatically exposed to the UI 자동화UI Automation system. 또한 사용자 지정 컨트롤을 구현하는 애플리케이션은 이러한 컨트롤에 대해 UI 자동화UI Automation 공급자를 구현할 수도 있으며, 공급자에 액세스하기 위해 클라이언트 애플리케이션이 수행해야 할 특별한 단계는 없습니다.Applications that implement custom controls may also implement UI 자동화UI Automation providers for those controls, and client applications do not have to take any special steps to gain access to them.

컨트롤 개발자가 특히 UI 자동화UI AutomationWindows FormsWindows Forms 창의 컨트롤에 대한 Win32Win32 공급자를 구현하는 방법에 대한 개요를 제공합니다.This topic provides an overview of how control developers implement UI 자동화UI Automation providers, particularly for controls in Windows FormsWindows Forms and Win32Win32 windows.

공급자 형식입니다.Types of Providers

UI 자동화 공급자는 클라이언트 쪽 공급자와 서버 쪽 공급자 두 범주로 나누어집니다.UI Automation providers fall into two categories: client-side providers and server-side providers.

클라이언트 쪽 공급자Client-side providers

클라이언트 쪽 공급자는 UI 자동화 클라이언트가 구현하여 UI 자동화UI Automation을 지원하지 않거나 완전하게 지원되지 않는 애플리케이션과 통신합니다.Client-side providers are implemented by UI Automation clients to communicate with an application that does not support, or does not fully support, UI 자동화UI Automation. 클라이언트 쪽 공급자는 일반적으로 Windows 메시지를 보내고 받아 프로세스 경계를 넘어 서버와 통신 합니다.Client-side providers usually communicate with the server across the process boundary by sending and receiving Windows messages.

, Windows Forms 또는 Win32Win32 WPFWPF 응용 프로그램의 컨트롤에 대 한 UI 자동화 공급자는 운영 체제의 일부로 제공 되므로 클라이언트 응용 프로그램은 자체 공급자를 구현할 필요가 거의 없으며이 개요에서는 다루지 않습니다. 추가.Because UI Automation providers for controls in Win32Win32, Windows Forms, or WPFWPF applications are supplied as part of the operating system, client applications seldom have to implement their own providers, and this overview does not cover them further.

서버 쪽 공급자Server-side providers

서버 쪽 공급자는, Windows Forms 또는 Win32Win32 WPFWPF이외의 UI 프레임 워크를 기반으로 하는 응용 프로그램 또는 사용자 지정 컨트롤을 통해 구현 됩니다.Server-side providers are implemented by custom controls or by applications that are based on a UI framework other than Win32Win32, Windows Forms, or WPFWPF.

서버 쪽 공급자는 UI 자동화UI Automation 핵심 시스템에 인터페이스를 노출하여 프로세스 경계를 넘어 클라이언트 애플리케이션과 통신하고, 클라이언트의 요청을 처리합니다.Server-side providers communicate with client applications across the process boundary by exposing interfaces to the UI 자동화UI Automation core system, which in turn serves requests from clients.

UI 자동화 공급자 개념UI Automation Provider Concepts

이 섹션에서는 UI 자동화 공급자를 구현하기 위해 이해해야 할 주요 개념 중 일부에 대해 간략하게 설명합니다.This section provides brief explanations of some of the key concepts you need to understand in order to implement UI Automation providers.

요소Elements

UI 자동화UI Automation 요소는 UI 자동화 클라이언트에 표시되는 UI(사용자 인터페이스)user interface (UI) 항목입니다.elements are pieces of UI(사용자 인터페이스)user interface (UI) that are visible to UI Automation clients. 애플리케이션 창, 창, 단추, 도구 설명, 목록 상자 및 목록 항목을 예로 들 수 있습니다.Examples include application windows, panes, buttons, tooltips, list boxes, and list items.

UI 자동화UI Automation 요소는 클라이언트에 UI 자동화UI Automation 트리로 노출됩니다.elements are exposed to clients as a UI 자동화UI Automation tree. UI 자동화UI Automation 은 요소를 탐색하여 트리를 생성합니다.constructs the tree by navigating from one element to another. 탐색은 부모, 형제, 자식을 나타낼 수 있는 각 요소의 공급자를 통해 사용할 수 있습니다.Navigation is enabled by the providers for each element, each of which may point to a parent, siblings, and children.

UI 자동화UI Automation 트리의 클라이언트 뷰에 대 한 자세한 내용은 UI 자동화 트리 개요를 참조 하세요.For more information on the client view of the UI 자동화UI Automation tree, see UI Automation Tree Overview.

보기Views

다음 표에서와 같이 클라이언트에서는 3개의 주요 뷰로 UI 자동화UI Automation 트리가 표시됩니다.A client can see the UI 자동화UI Automation tree in three principal views, as shown in the following table.

Raw 뷰Raw view 모든 요소를 포함합니다.Contains all elements.
컨트롤 뷰Control view 컨트롤인 요소를 포함합니다.Contains elements that are controls.
콘텐츠 뷰Content view 콘텐츠가 있는 요소를 포함합니다.Contains elements that have content.

UI 자동화UI Automation 트리의 클라이언트 뷰에 대 한 자세한 내용은 UI 자동화 트리 개요를 참조 하세요.For more information on client views of the UI 자동화UI Automation tree, see UI Automation Tree Overview.

콘텐츠 요소 또는 컨트롤 요소로 요소를 정의하는 것은 공급자 구현에서 담당합니다.It is the responsibility of the provider implementation to define an element as a content element or a control element. 컨트롤 요소가 콘텐츠 요소일 수도 있고 그렇지 않을 수도 있지만, 모든 콘텐츠 요소는 컨트롤 요소입니다.Control elements may or may not also be content elements, but all content elements are control elements.

프레임워크Frameworks

프레임워크는 화면 영역에서 하위 컨트롤, 적중 테스트, 렌더링을 관리하는 구성 요소입니다.A framework is a component that manages child controls, hit-testing, and rendering in an area of the screen. 예를 들어, HWND라고도 하는 Win32Win32 창은 메뉴 모음, 상태 표시줄 및 단추와 같은 여러 UI 자동화UI Automation 요소가 포함되는 프레임워크 역할을 할 수 있습니다.For example, a Win32Win32 window, often referred to as an HWND, can serve as a framework that contains multiple UI 자동화UI Automation elements such as a menu bar, a status bar, and buttons.

목록 상자 및 트리 뷰와 같은Win32Win32 컨테이너 컨트롤은 하위 항목 렌더링 및 적중 테스트 수행을 위한 고유한 코드가 포함되어 있기 때문에 프레임워크로 간주됩니다.Win32Win32 container controls such as list boxes and tree views are considered to be frameworks, because they contain their own code for rendering child items and performing hit-testing on them. 한편, WPFWPF 목록 상자는 렌더링 및 적중 테스트가 포함된 WPFWPF 창에서 처리되기 때문에 프레임워크가 아닙니다.By contrast, a WPFWPF list box is not a framework, because the rendering and hit-testing is being handled by the containing WPFWPF window.

애플리케이션에서 UIUI 는 다양한 프레임워크로 구성될 수 있습니다.The UIUI in an application can be made up of different frameworks. 예를 들어, HWND 응용 프로그램 창에는 DHTML의 콤보 상자와 같은 구성 요소를 포함 하는 DHTML (동적 HTML)이 포함 될 수 있습니다.For example, an HWND application window might contain Dynamic HTML (DHTML) which in turn contains a component such as a combo box in an HWND.

조각Fragments

조각은 특정 프레임워크에서 요소의 전체 하위 트리입니다.A fragment is a complete subtree of elements from a particular framework. 하위 트리의 루트 노드에 있는 요소를 조각 루트라고 합니다.The element at the root node of the subtree is called a fragment root. 조각 루트에는 부모는 없지만 다른 프레임워크, 일반적으로 Win32Win32 창(HWND) 내에서 호스트됩니다.A fragment root does not have a parent, but is hosted within some other framework, usually a Win32Win32 window (HWND).

호스트Hosts

모든 조각의 루트 노드는 요소, 일반적으로 Win32Win32 창(HWND)에서 호스트되어야 합니다.The root node of every fragment must be hosted in an element, usually a Win32Win32 window (HWND). 다른 요소에서 호스트되지 않는 데스크톱은 예외입니다.The exception is the desktop, which is not hosted in any other element. 사용자 지정의 호스트는 애플리케이션 창 또는 최상위 컨트롤 그룹이 있을 수 있는 다른 창이 아닌 컨트롤 자체의 HWND입니다.The host of a custom control is the HWND of the control itself, not the application window or any other window that might contain groups of top-level controls.

조각의 호스트는 UI 자동화UI Automation 서비스를 제공하는 중요한 역할을 합니다.The host of a fragment plays an important role in providing UI 자동화UI Automation services. 이 호스트를 통해 조각 루트를 탐색할 수 있으며, 몇 가지 기본 속성을 제공하므로 사용자 지정 공급자가 속성을 구현할 필요가 없습니다.It enables navigation to the fragment root, and supplies some default properties so that the custom provider does not have to implement them.

참고자료See also