다음을 통해 공유


UI 자동화 공급자 개요

비고

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows Automation API: UI 자동화참조하세요.

UI 자동화 공급자를 사용하면 컨트롤이 UI 자동화 클라이언트 애플리케이션과 통신할 수 있습니다. 일반적으로 UI(사용자 인터페이스)의 각 컨트롤 또는 다른 고유 요소는 공급자가 나타냅니다. 공급자는 요소에 대한 정보를 노출하고 클라이언트 애플리케이션이 컨트롤과 상호 작용할 수 있도록 하는 컨트롤 패턴을 선택적으로 구현합니다.

클라이언트 애플리케이션은 일반적으로 공급자와 직접 작업할 필요가 없습니다. Win32, Windows Forms 또는 WPF(Windows Presentation Foundation) 프레임워크를 사용하는 애플리케이션의 대부분의 표준 컨트롤은 UI 자동화 시스템에 자동으로 노출됩니다. 사용자 지정 컨트롤을 구현하는 애플리케이션은 해당 컨트롤에 대한 UI 자동화 공급자를 구현할 수도 있으며, 클라이언트 애플리케이션은 액세스 권한을 얻기 위해 특별한 단계를 수행할 필요가 없습니다.

이 항목에서는 컨트롤 개발자가 특히 Windows Forms 및 Win32 창의 컨트롤에 대해 UI 자동화 공급자를 구현하는 방법에 대한 개요를 제공합니다.

공급자 유형

UI 자동화 공급자는 클라이언트 쪽 공급자와 서버 쪽 공급자의 두 가지 범주로 구분됩니다.

클라이언트 쪽 공급자

클라이언트 쪽 공급자는 UI 자동화를 지원하지 않거나 완전히 지원하지 않는 애플리케이션과 통신하기 위해 UI 자동화 클라이언트에 의해 구현됩니다. 클라이언트 쪽 공급자는 일반적으로 Windows 메시지를 보내고 수신하여 프로세스 경계를 넘어 서버와 통신합니다.

Win32, Windows Forms 또는 WPF 애플리케이션의 컨트롤에 대한 UI 자동화 공급자는 운영 체제의 일부로 제공되므로 클라이언트 애플리케이션은 자체 공급자를 구현할 필요가 거의 없으며, 이 개요는 더 이상 다루지 않습니다.

서버 쪽 공급자

서버 쪽 공급자는 사용자 지정 컨트롤 또는 Win32, Windows Forms 또는 WPF 이외의 UI 프레임워크를 기반으로 하는 애플리케이션에 의해 구현됩니다.

서버 쪽 공급자는 UI 자동화 핵심 시스템에 인터페이스를 노출하여 프로세스 경계를 넘어 클라이언트 애플리케이션과 통신합니다. 그러면 클라이언트의 요청을 처리합니다.

UI 자동화 공급자 개념

이 섹션에서는 UI 자동화 공급자를 구현하기 위해 이해해야 하는 몇 가지 주요 개념에 대해 간략하게 설명합니다.

요소들

UI 자동화 요소는 UI 자동화 클라이언트에 표시되는 UI(사용자 인터페이스)의 조각입니다. 예를 들어 애플리케이션 창, 창, 단추, 도구 설명, 목록 상자 및 목록 항목이 있습니다.

UI 자동화 요소는 UI 자동화 트리로 클라이언트에 노출됩니다. UI 자동화는 한 요소에서 다른 요소로 이동하여 트리를 생성합니다. 각 요소에 대해 공급자가 탐색을 사용하도록 설정하며 각 요소는 부모, 형제 및 자식을 가리킬 수 있습니다.

UI 자동화 트리의 클라이언트 보기에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

조회수

클라이언트는 다음 표와 같이 세 가지 주 뷰에서 UI 자동화 트리를 볼 수 있습니다.

보기 설명
원시 보기 모든 요소를 포함합니다.
제어 화면 제어 요소를 포함합니다.
콘텐츠 보기 콘텐츠가 있는 요소를 포함합니다.

UI 자동화 트리의 클라이언트 보기에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

요소를 콘텐츠 요소 또는 컨트롤 요소로 정의하는 것은 공급자 구현의 책임입니다. 컨트롤 요소는 콘텐츠 요소일 수도 있고 아닐 수도 있지만 모든 콘텐츠 요소는 컨트롤 요소입니다.

프레임워크

프레임워크는 화면 영역에서 자식 컨트롤, 적중 테스트 및 렌더링을 관리하는 구성 요소입니다. 예를 들어 HWND라고도 하는 Win32 창은 메뉴 모음, 상태 표시줄 및 단추와 같은 여러 UI 자동화 요소를 포함하는 프레임워크 역할을 할 수 있습니다.

목록 상자 및 트리 뷰와 같은 Win32 컨테이너 컨트롤은 자식 항목을 렌더링하고 적중 테스트를 수행하기 위한 자체 코드를 포함하므로 프레임워크로 간주됩니다. 반면, 렌더링 및 적중 테스트가 포함된 WPF 창에서 처리되고 있기 때문에 WPF 목록 상자는 프레임워크가 아닙니다.

애플리케이션의 UI는 다양한 프레임워크로 구성될 수 있습니다. 예를 들어 HWND 애플리케이션 창에는 DHTML(동적 HTML)이 포함될 수 있으며, 이 창에는 HWND의 콤보 상자와 같은 구성 요소가 포함될 수 있습니다.

조각

조각은 특정 프레임워크의 요소에 대한 전체 하위 트리입니다. 하위 트리의 루트 노드에 있는 요소를 조각 루트라고 합니다. 조각 루트에는 부모가 없지만 다른 프레임워크(일반적으로 Win32 창)에서 호스트됩니다.

호스트

모든 조각의 루트 노드는 일반적으로 Win32 창(HWND)인 요소에서 호스트되어야 합니다. 예외는 데스크톱이며 다른 요소에서 호스트되지 않습니다. 사용자 지정 컨트롤의 호스트는 애플리케이션 창이나 최상위 컨트롤 그룹을 포함할 수 있는 다른 창이 아니라 컨트롤 자체의 HWND입니다.

조각의 호스트는 UI 자동화 서비스를 제공하는 데 중요한 역할을 합니다. 조각 루트에 대한 탐색을 사용하도록 설정하고 사용자 지정 공급자가 이를 구현할 필요가 없도록 몇 가지 기본 속성을 제공합니다.

참고하십시오