다음을 통해 공유


UI 자동화 개요

참고참고

이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오.

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

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

참고참고

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

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

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

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

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

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

공급자 및 클라이언트

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

구성 요소

설명

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

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

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

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

UiAutomationCore.dll

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

UIAutomationClientsideProviders.dll

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

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

단원

주제

대상 사용자

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

개념에 대한 포괄적인 개요

모든 사용자

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

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

컨트롤 개발자

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

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

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

UI 자동화 컨트롤 패턴

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

모든 사용자

UI 자동화 텍스트 패턴

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

모든 사용자

UI 자동화 컨트롤 형식

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

모든 사용자

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

Namespace

참조 DLL

대상 사용자

System.Windows.Automation

UIAutomationClientUIAutomationTypes

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

System.Windows.Automation.Provider

UIAutomationProviderUIAutomationTypes

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

System.Windows.Automation.Text

UIAutomationClientUIAutomationTypes

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

System.Windows.Automation.Peers

PresentationFramework

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

UI 자동화 모델

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

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

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

참고참고

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

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

참고 항목

개념

UI 자동화 트리 개요

UI 자동화 컨트롤 패턴 개요

UI 자동화 속성 개요

UI 자동화 이벤트 개요

UI 자동화 보안 개요