다음을 통해 공유


UI 자동화 개요

업데이트: 2007년 11월

Microsoft UI 자동화는 WPF(Windows Presentation Foundation)를 지원하는 모든 운영 체제에서 사용할 수 있는 Microsoft Windows의 새로운 내게 필요한 옵션 프레임워크입니다.

UI 자동화를 통해 데스크톱에 있는 대부분의 UI(사용자 인터페이스) 요소에 프로그래밍 방식으로 액세스할 수 있으므로 화면 판독기 등의 보조 기술 제품에서 최종 사용자에게 UI에 대한 정보를 제공할 수 있으며 표준 입력 이외의 방법을 통해 UI를 조작할 수 있습니다. 또한 자동화된 테스트 스크립트에서 UI 자동화를 통해 UI와 상호 작용할 수 있습니다.

참고:

UI 자동화는 다음 계정으로 실행 명령을 통해 여러 사용자가 시작한 프로세스 간 통신은 지원하지 않습니다.

작성된 UI 자동화 클라이언트 응용 프로그램은 다양한 프레임워크에서 정상적으로 작동합니다. UI 자동화 핵심 시스템은 UI에 있는 다양한 요소의 기반이 되는 프레임워크 간의 차이점을 숨깁니다. 예를 들어 WPF 단추의 Content 속성, Win32 단추의 Caption 속성 및 HTML 이미지의 ALT 속성은 모두 UI 자동화 보기에서 Name이라는 단일 속성에 매핑됩니다.

Windows Vista, Microsoft Windows XP 및 Windows Server 2003에서는 UI 자동화의 모든 기능이 제공됩니다.

UI 자동화 공급자는 기본 제공되는 브리징 서비스를 통해 Microsoft Active Accessibility 클라이언트 응용 프로그램을 일부 지원합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 공급자 및 클라이언트
  • UI 자동화 모델
  • 관련 항목

공급자 및 클라이언트

UI 자동화는 다음 표에 나오는 네 가지 주요 요소로 구성됩니다.

구성 요소

설명

공급자 API(UIAutomationProvider.dll 및 UIAutomationTypes.dll)

UI 자동화 공급자(UI 요소 정보를 제공하고 프로그래밍 입력에 응답하는 개체)에 의해 구현되는 일련의 인터페이스 정의 집합

클라이언트 API(UIAutomationClient.dll 및 UIAutomationTypes.dll)

UI 자동화 클라이언트 응용 프로그램이 UI에 대한 정보를 가져오고 컨트롤에 입력을 전송할 수 있게 해주는 관리 코드용 형식 집합

UiAutomationCore.dll

공급자와 클라이언트 간 통신을 처리하는 내부 코드(UI 자동화 핵심)

UIAutomationClientsideProviders.dll

표준 레거시 컨트롤에 대한 UI 자동화 공급자 집합. (WPF 컨트롤에는 UI 자동화에 대한 지원 기능이 기본적으로 포함되어 있으며 클라이언트 응용 프로그램에서는 자동적으로 이 기능을 사용할 수 있습니다.

소프트웨어 개발자는 UI 자동화를 두 가지 방법으로 사용할 수 있습니다. 하나는 사용자 지정 컨트롤에 대한 지원 기능을 만드는 것이고(공급자 API 사용) 다른 하나는 UI 요소와 통신하기 위해 UI 자동화 핵심을 사용하는 응용 프로그램을 만드는 것입니다(클라이언트 API 사용). 개발자가 주안점을 두는 부분에 따라 문서에서 해당되는 부분을 참조해야 합니다. 다음 단원에서는 UI 자동화의 개념 및 실제 사용 방법에 대한 자세한 정보를 제공합니다.

단원

주제

대상 사용자

UI 자동화 기본 사항(이 단원)

개념에 대한 포괄적인 개요

모든 사용자

관리 코드에 대한 UI 자동화 공급자

공급자 API의 개요와 사용 방법

컨트롤 개발자

관리 코드에 대한 UI 자동화 클라이언트

클라이언트 API의 개요와 사용 방법

클라이언트 응용 프로그램 개발자

UI 자동화 컨트롤 패턴

공급자에 의해 컨트롤 패턴이 구현되는 방법 및 클라이언트가 사용할 수 있는 기능에 대한 정보

모든 사용자

UI 자동화 텍스트 패턴

공급자에 의해 Text 컨트롤 패턴이 구현되는 방법 및 클라이언트가 사용할 수 있는 기능에 대한 정보

모든 사용자

UI 자동화 컨트롤 형식

다양한 컨트롤 형식을 통해 지원되는 속성 및 컨트롤 패턴에 대한 정보

모든 사용자

다음 표에서는 UI 자동화 네임스페이스, 네임스페이스가 포함된 DLL 및 네임스페이스를 사용하는 대상 사용자를 보여 줍니다.

네임스페이스

참조 DLL

대상 사용자

System.Windows.Automation

UIAutomationClientUIAutomationTypes

UI 자동화 클라이언트 개발자가 사용하며, AutomationElement 개체를 찾고 UI 자동화 이벤트에 등록하고 UI 자동화 컨트롤 패턴에 대한 작업을 수행하는 데 사용됩니다.

System.Windows.Automation.Provider

UIAutomationProviderUIAutomationTypes

WPF 이외의 프레임워크를 위한 UI 자동화 공급자의 개발자가 사용합니다.

System.Windows.Automation.Text

UIAutomationClientUIAutomationTypes

WPF 이외의 프레임워크를 위한 UI 자동화 공급자 개발자가 사용하며, TextPattern 컨트롤 패턴을 구현하는 데 사용됩니다.

System.Windows.Automation.Peers

PresentationFramework

WPF를 위한 UI 자동화 공급자의 개발자가 사용합니다.

UI 자동화 모델

UI 자동화는 UI의 모든 요소를 AutomationElement로 클라이언트 응용 프로그램에 노출합니다. 요소는 데스크톱이 루트 요소인 트리 구조에 포함됩니다. 클라이언트에서 트리의 Raw 뷰를 컨트롤 뷰 또는 콘텐츠 뷰로 필터링할 수 있습니다. 이러한 표준 구조 뷰는 이 SDK(소프트웨어 개발 키트)에 포함된 UI Spy 응용 프로그램을 사용하여 손쉽게 볼 수 있습니다. 응용 프로그램에서 사용자 지정 뷰를 만들 수도 있습니다.

AutomationElement 개체는 개체가 나타내는 UI 요소의 공통 속성을 노출합니다. 이러한 속성 중 하나는 컨트롤의 기본 모양과 기능을 단추나 확인란과 같은 인식 가능한 하나의 엔터티로 정의하는 컨트롤 형식입니다.

또한 요소는 해당 컨트롤 형식에 고유한 속성을 제공하는 컨트롤 패턴을 노출합니다. 뿐만 아니라 컨트롤 패턴은 클라이언트가 요소에 대한 추가 정보를 수집하여 입력을 제공하는 데 사용할 수 있는 메서드를 노출합니다.

참고:

컨트롤 형식과 컨트롤 패턴은 일대일 대응 관계를 이루지 않습니다. 한 컨트롤 패턴을 여러 컨트롤 형식에서 지원하거나 한 컨트롤이 여러 컨트롤 패턴을 지원할 수 있으며, 각각은 해당 동작의 서로 다른 측면을 노출합니다. 예를 들어 콤보 상자에는 콤보 상자 확장 및 축소 기능을 나타내는 컨트롤 패턴과 선택 메커니즘을 나타내는 컨트롤 패턴 등 최소 두 개의 컨트롤 패턴이 있습니다. 자세한 내용은 UI 자동화 컨트롤 형식을 참조하십시오.

또한 UI 자동화는 이벤트를 통해 클라이언트 응용 프로그램에 정보를 제공합니다. WinEvents와 달리 UI 자동화 이벤트는 브로드캐스트 메커니즘을 기반으로 하지 않습니다. UI 자동화 클라이언트는 특정 이벤트 알림에 등록하고 특정 UI 자동화 속성과 컨트롤 패턴 정보를 해당 이벤트 처리기에 전달하도록 요청할 수 있습니다. 또한 UI 자동화 이벤트에는 이를 발생시킨 요소에 대한 참조가 포함됩니다. 공급자는 클라이언트가 이벤트를 수신하는지 여부에 따라 이벤트를 선택적으로 발생시켜 성능을 높일 수 있습니다.

참고 항목

개념

UI 자동화 트리 개요

UI 자동화 컨트롤 패턴 개요

UI 자동화 속성 개요

UI 자동화 이벤트 개요

UI 자동화 보안 개요