UI 자동화 공급자 개요
참고 |
---|
이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오. |
UI 자동화 공급자는 컨트롤이 UI 자동화 클라이언트 응용 프로그램과 통신할 수 있도록 합니다. 일반적으로 user interface (UI)의 각 컨트롤이나 기타 고유 요소는 공급자에 의해 제공됩니다. 공급자는 요소에 대한 정보를 노출하고 클라이언트 응용 프로그램이 컨트롤과 상호 작용할 수 있도록 지원하는 컨트롤 패턴을 선택적으로 구현합니다.
대개 클라이언트 응용 프로그램이 공급자와 직접 상호 작용할 필요는 없습니다. Win32, Windows Forms 또는 Windows Presentation Foundation (WPF) 프레임워크를 사용하는 응용 프로그램에서 대부분의 표준 컨트롤은 자동으로 UI Automation 시스템에 노출됩니다. 사용자 지정 컨트롤을 구현하는 응용 프로그램은 해당 컨트롤에 대해 UI Automation 공급자를 구현할 수도 있으며, 클라이언트 응용 프로그램은 이러한 컨트롤에 액세스하기 위해 특별한 단계를 수행할 필요가 없습니다.
이 항목에서는 컨트롤 개발자가 특히 Windows Forms 및 Win32 창의 컨트롤에 대해 UI Automation 공급자를 구현하는 방법을 간략하게 설명합니다.
이 항목에는 다음 단원이 포함되어 있습니다.
- 공급자 형식
- UI 자동화 공급자 개념
- 관련 항목
공급자 형식
UI 자동화 공급자는 클라이언트 쪽 공급자와 서버 쪽 공급자라는 두 가지 범주로 나뉩니다.
클라이언트 쪽 공급자
클라이언트 쪽 공급자는 UI Automation를 지원하지 않거나 부분적으로만 지원하는 응용 프로그램과 통신하기 위해 UI 자동화 클라이언트에서 구현됩니다. 대개 클라이언트 쪽 공급자는 프로세스 경계를 넘어 Windows 메시지를 보내고 받음으로써 서버와 통신합니다.
Win32, Windows Forms 또는 WPF 응용 프로그램에서 컨트롤의 UI 자동화 공급자는 운영 체제의 일부로 제공되므로 클라이언트 응용 프로그램에서 자체 공급자를 구현하는 경우는 거의 없으며, 이 개요에서도 이러한 방법은 더 이상 설명하지 않습니다.
서버 쪽 공급자
서버 쪽 공급자는 사용자 지정 컨트롤로 구현되거나 Win32, Windows Forms 또는 WPF 이외의 UI 프레임워크를 기반으로 하는 응용 프로그램으로 구현됩니다.
서버 쪽 공급자는 프로세스 경계를 넘어 UI Automation 핵심 시스템에 인터페이스를 노출하여 클라이언트 응용 프로그램과 통신하며 클라이언트 요청은 이 시스템에서 처리됩니다.
UI 자동화 공급자 개념
이 단원에서는 UI 자동화 공급자를 구현할 때 알아야 하는 몇 가지 주요 개념에 대해 간략히 설명합니다.
Elements
UI Automation 요소는 UI 자동화 클라이언트에 표시되는 user interface (UI) 부분입니다. 이러한 예로는 응용 프로그램 창, 하위 창, 단추, 도구 설명, 목록 상자, 목록 항목 등이 있습니다.
탐색
UI Automation 요소는 클라이언트에 UI Automation 트리로 노출됩니다. UI Automation는 요소 간 탐색을 통해 트리를 구성합니다. 이러한 탐색은 각 요소의 공급자에 의해 활성화되며 각 요소는 부모, 형제 또는 자식을 가리킬 수 있습니다.
UI Automation 트리의 클라이언트 뷰에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하십시오.
뷰
클라이언트는 다음 표에서와 것과 같이 세 가지 기본 뷰로 UI Automation 트리를 볼 수 있습니다.
Raw 뷰 |
모든 요소를 포함합니다. |
컨트롤 뷰 |
컨트롤인 요소를 포함합니다. |
콘텐츠 뷰 |
콘텐츠가 있는 요소를 포함합니다. |
UI Automation 트리의 클라이언트 뷰에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하십시오.
요소를 콘텐츠 요소나 컨트롤 요소로 정의하는 작업은 공급자 구현에서 수행해야 합니다. 컨트롤 요소는 콘텐츠 요소이거나 콘텐츠 요소가 아닐 수도 있지만 모든 콘텐츠 요소는 컨트롤 요소입니다.
프레임워크
프레임워크는 화면 영역에서 자식 컨트롤, 적중 테스트 및 렌더링을 관리하는 구성 요소입니다. 예를 들어 HWND라고도 하는 Win32 창은 메뉴 모음, 상태 표시줄, 단추 등과 같은 여러 UI Automation 요소를 포함하는 프레임워크 역할을 수행할 수 있습니다.
목록 상자 및 트리 뷰와 같은 Win32 컨테이너 컨트롤은 자식 항목을 렌더링하고 이에 대해 적중 테스트를 수행하는 고유한 코드를 포함하기 때문에 프레임워크로 간주됩니다. 반대로 WPF 목록 상자는 포함하는 WPF 창에서 렌더링과 적중 테스트가 처리되므로 프레임워크가 아닙니다.
응용 프로그램에서 UI는 여러 다른 프레임워크로 구성될 수 있습니다. 예를 들어 HWND 응용 프로그램 창에 Dynamic HTML (DHTML)이 포함되고 여기에 HWND의 콤보 상자 같은 구성 요소가 포함될 수 있습니다.
조각
조각은 특정 프레임워크 요소의 완전한 하위 트리입니다. 이 하위 트리의 루트 노드에 있는 요소를 조각 루트라고 합니다. 조각 루트에는 부모가 없지만 대개 Win32 창(HWND)과 같은 일부 다른 프레임워크 내에서 호스팅됩니다.
호스트
모든 조각의 루트 노드는 대개 Win32 창(HWND) 같은 요소에서 호스팅되어야 합니다. 바탕 화면은 예외로 다른 요소에서 호스팅되지 않습니다. 사용자 지정 컨트롤의 호스트는 컨트롤 자체의 HWND이며 최상위 컨트롤 그룹을 포함할 수 있는 기타 창이나 응용 프로그램 창은 사용자 지정 컨트롤의 호스트가 될 수 없습니다.
조각의 호스트는 UI Automation 서비스를 제공하는 중요한 역할을 수행합니다. 즉, 조각 루트로 탐색할 수 있도록 지원하고 일부 기본 속성을 제공하여 사용자 지정 공급자가 해당 속성을 구현할 필요가 없도록 합니다.