UI 자동화 공급자 개요

참고

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

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

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

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

공급자 형식입니다.

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 자동화 트리를 볼 수 있습니다.

보기 Description
Raw 뷰 모든 요소를 포함합니다.
컨트롤 뷰 컨트롤인 요소를 포함합니다.
콘텐츠 뷰 콘텐츠가 있는 요소를 포함합니다.

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

콘텐츠 요소 또는 컨트롤 요소로 요소를 정의하는 것은 공급자 구현에서 담당합니다. 컨트롤 요소가 콘텐츠 요소일 수도 있고 그렇지 않을 수도 있지만, 모든 콘텐츠 요소는 컨트롤 요소입니다.

프레임워크

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

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

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

조각

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

호스트

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

조각의 호스트는 UI 자동화 서비스를 제공하는 데 중요한 역할을 합니다. 이 호스트를 통해 조각 루트를 탐색할 수 있으며, 몇 가지 기본 속성을 제공하므로 사용자 지정 공급자가 속성을 구현할 필요가 없습니다.

참고 항목