UI 자동화 개요

참고 항목

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

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

UI 자동화는 데스크톱에 있는 대부분의 UI(사용자 인터페이스) 요소에 대한 프로그래밍 방식 액세스 권한을 제공하여 화면 읽기 프로그램과 같은 보조 기술 제품이 최종 사용자에게 UI에 대한 정보를 제공하고 표준 입력 이외의 수단으로 UI를 조작할 수 있도록 합니다. 또한 UI 자동화는 자동화된 테스트 스크립트가 UI와 상호 작용할 수 있도록 합니다.

참고 항목

UI 자동화는 Run as 명령을 통해 다른 사용자가 시작한 프로세스 간의 통신을 사용하도록 설정하지 않습니다.

UI 자동화 클라이언트 애플리케이션이 여러 프레임워크에서 작동되도록 작성할 수 있습니다. UI 자동화 핵심은 다양한 UI 부분의 기반이 되는 프레임워크의 모든 차이점을 마스킹합니다. 예를 들어 WPF 단추의 Content 속성, Win32 단추의 Caption 속성, HTML 이미지의 ALT 속성은 모두 UI 자동화 보기에서 단일 속성 Name에 매핑됩니다.

UI 자동화는 .NET Framework를 실행하는 지원되는 Windows 운영 체제에서 전체 기능을 제공합니다(.NET Framework 시스템 요구 사항 또는 .NET Core 3.0부터 시작하는 .NET Core 버전 참조).

UI 자동화 공급자는 기본 제공 브리징 서비스를 통해 Microsoft Active Accessibility 클라이언트 애플리케이션에 대한 일부 지원을 제공합니다.

공급자 및 클라이언트

UI 자동화에는 다음 표에서와 같이 4개의 주요 구성 요소가 있습니다.

구성 요소 설명
공급자 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 자동화 공급자 공급자 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 보기를 컨트롤 뷰 또는 콘텐츠 뷰로 필터링할 수 있습니다. 애플리케이션은 사용자 지정 뷰를 만들 수도 있습니다.

AutomationElement 개체는 이 개체가 나타내는 UI 요소의 공용 속성을 노출합니다. 이러한 속성 중 하나는 인식할 수 있는 단일 엔터티로 기본 모양과 기능을 정의하는 컨트롤 형식입니다(예: 단추 또는 확인란).

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

참고 항목

컨트롤 형식과 컨트롤 패턴 간에 일대일 대응이 없습니다. 단일 컨트롤 패턴은 여러 컨트롤 형식에서 지원될 수 있으며, 단일 컨트롤에는 각각 해당 동작의 다양한 측면을 노출하는 여러 컨트롤 패턴을 지원할 수 있습니다. 예를 들어, 콤보 상자에 둘 이상의 컨트롤 패턴이 있을 수 있으며 그중 하나는 확장 및 축소하는 기능을 나타내며 나머지 하나는 선택 메커니즘을 나타냅니다. 자세한 내용은 UI Automation Control Types을 참조하세요.

또한 UI 자동화는 이벤트를 통해 클라이언트 애플리케이션에 정보를 제공합니다. WinEvents와는 달리, UI 자동화 이벤트는 브로드캐스트 메커니즘을 기반으로 하지 않습니다. UI 자동화 클라이언트는 특정 이벤트 알림을 등록하며, 이벤트 처리기에 전달되는 특정 UI 자동화 속성 및 컨트롤 패턴 정보를 요청할 수 있습니다. 또한 UI 자동화 이벤트에는 이 이벤트를 발생시킨 요소에 대한 참조가 들어 있습니다. 공급자는 모든 클라이언트가 수신 대기하고 있는지 여부에 따라 선택적으로 이벤트를 발생시켜 성능을 향상시킬 수 있습니다.

참고 항목