UI 자동화 개요

Microsoft UI 자동화는 Windows용 접근성 프레임워크입니다. 데스크톱의 대부분의 UI 요소에 프로그래밍 방식으로 액세스할 수 있습니다. 이를 통해 화면 읽기 프로그램과 같은 보조 기술 제품이 최종 사용자에게 UI에 대한 정보를 제공하고 표준 입력 이외의 수단으로 UI를 조작할 수 있습니다. 또한 UI 자동화는 자동화된 테스트 스크립트가 UI와 상호 작용할 수 있도록 합니다.

UI 자동화는 Microsoft .NET Framework 일부로 Windows XP에서 처음 사용할 수 있었습니다. 당시 관리되지 않는 C++ API도 게시되었지만 상호 운용성 문제로 인해 클라이언트 함수의 유용성이 제한되었습니다. Windows 7의 경우 구성 요소 개체 모델(COM)에서 API를 다시 작성했습니다.

참고

이전 버전의 UI 자동화에서 도입된 라이브러리 함수는 여전히 문서화되어 있지만 새 애플리케이션에서 사용하면 안 됩니다.

UI 자동화 클라이언트 애플리케이션은 여러 Microsoft Windows 제어 프레임워크에서 작동한다는 확신을 가지고 작성할 수 있습니다. UI 자동화 코어는 UI의 다양한 부분을 기초로 하는 프레임워크의 차이를 마스킹합니다. 예를 들어 WPF(Windows Presentation Foundation) 단추의 Content 속성, Microsoft Win32 단추의 Caption 속성 및 HTML 이미지의 ALT 속성은 모두 UI 자동화 보기의 단일 속성 Name에 매핑됩니다.

UI 자동화는 Windows XP, Windows Server 2003 이상 운영 체제에서 전체 기능을 제공합니다.

UI 자동화 공급자는 컨트롤에 대한 UI 자동화 지원을 구현하고 기본 제공 브리징 서비스를 통해 Microsoft Active Accessibility 클라이언트 애플리케이션에 대한 일부 지원을 제공하는 구성 요소입니다.

참고

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

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

UI 자동화 구성 요소

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

구성 요소 설명
공급자 API UI 자동화 공급자가 구현하는 COM 인터페이스 집합입니다. UI 자동화 공급자는 UI 요소에 대한 정보를 제공하고 프로그래밍 방식 입력에 응답하는 개체입니다.
클라이언트 API 클라이언트 애플리케이션이 UI에 대한 정보를 얻고 컨트롤에 입력을 보낼 수 있도록 하는 COM 인터페이스 집합입니다. 참고:사용되지 않는 컨트롤 패턴 함수 및 사용되지 않는 노드 함수에 설명된 함수 는 더 이상 사용되지 않습니다. 대신 클라이언트 애플리케이션은 클라이언트용 UI 자동화 요소 인터페이스에 설명된 UI 자동화 COM 인터페이스를 사용해야 합니다.
UIAutomationCore.dll 공급자와 클라이언트 간의 통신을 처리하는 런타임 라이브러리(UI 자동화 코어라고도 함).
Oleacc.dll Microsoft Active Accessibility 및 프록시 개체에 대한 런타임 라이브러리입니다. 또한 이 라이브러리는 Microsoft Microsoft Active Accessibility to UI Automation Proxy에서 Win32 컨트롤을 지원하는 데 사용하는 프록시 개체를 제공합니다.

UI 자동화를 사용하는 방법에는 공급자 API를 사용하여 사용자 지정 컨트롤에 대한 지원을 만들고 UI 자동화 코어를 사용하여 UI 요소와 통신하고 정보를 검색하는 클라이언트 애플리케이션을 만드는 두 가지 방법이 있습니다. 관점에 따라 다르지만, 설명서의 여러 부분을 참조해야 합니다. 사용자 지정 컨트롤에 대한 지원을 만들어야 하는 경우 UI 자동화 공급자 프로그래머 가이드를 참조하세요. UI 요소와 통신하거나 정보를 검색해야 하는 경우 UI 자동화 클라이언트 프로그래머 가이드를 참조하세요.

UI 자동화 헤더 파일

UI 자동화 API는 Windows SDK(소프트웨어 개발 키트)에 포함된 여러 C/C++ 헤더 파일에 정의되어 있습니다. UI 자동화 헤더 파일은 다음 표에 설명되어 있습니다.

헤더 파일 설명
UIAutomationClient.h UI 자동화 클라이언트에서 사용하는 인터페이스 및 관련 프로그래밍 요소를 정의합니다.
UIAutomationCore.h UI 자동화 공급자가 사용하는 인터페이스 및 관련 프로그래밍 요소를 정의합니다.
UIAutomationCoreApi.h UI 자동화 클라이언트 및 공급자가 사용하는 일반 상수, GUID, 데이터 형식 및 구조를 정의합니다. 또한 사용되지 않는 노드 및 컨트롤 패턴 함수에 대한 정의도 포함합니다.
UIAutomation.h 다른 모든 UI 자동화 헤더 파일을 포함합니다. 대부분의 UI 자동화 애플리케이션에는 모든 UI 자동화 헤더 파일의 요소가 필요하므로 각 파일을 개별적으로 포함하는 대신 UI 자동화 애플리케이션 프로젝트에 UIAutomation.h를 포함하는 것이 가장 좋습니다.

UI 자동화 API를 사용하는 애플리케이션을 개발하는 경우 프로젝트에 UIAutomation.h를 포함해야 합니다. 애플리케이션이 Microsoft Active Accessibility를 지원하는 경우 Oleacc.h 헤더 파일을 포함합니다. GUID를 사용하는 UI 자동화 애플리케이션에는 Initguid.h 헤더 파일도 필요합니다. 필요한 경우 UIAutomation.h 앞에 Initguid.h를 포함해야 합니다.

UI 자동화 모델

UI 자동화는 UI의 모든 요소를 IUIAutomationElement 인터페이스가 나타내는 개체로 클라이언트 애플리케이션에 노출합니다. 요소는 루트 요소로 데스크톱과 함께 트리 구조에 포함됩니다. 클라이언트는 트리의 Raw 보기를 컨트롤 뷰 또는 콘텐츠 뷰로 필터링할 수 있습니다. 구조체의 이러한 표준 보기는 Windows SDK에 포함된 검사 애플리케이션을 사용하여 쉽게 볼 수 있습니다. 애플리케이션은 사용자 지정 뷰를 만들 수도 있습니다.

UI 자동화 요소는 나타내는 컨트롤 또는 UI 요소의 속성을 노출합니다. 이러한 속성 중 하나는 컨트롤 또는 UI 요소의 기본 모양과 기능을 단일 인식 가능한 엔터티(예: 단추 또는 검사 상자)로 정의하는 컨트롤 형식입니다. 컨트롤 형식에 대한 자세한 내용은 UI 자동화 컨트롤 형식 개요를 참조하세요.

또한 UI 자동화 요소는 하나 이상의 컨트롤 패턴을 노출합니다. 컨트롤 패턴은 특정 컨트롤 형식과 관련된 속성 집합을 제공합니다. 또한 컨트롤 패턴은 클라이언트 애플리케이션이 요소에 대한 자세한 정보를 얻고 요소에 입력을 제공할 수 있도록 하는 메서드를 노출합니다. 컨트롤 패턴에 대한 자세한 내용은 UI Automation Control Patterns Overview를 참조하세요.

참고

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

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

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 컨트롤 패턴 개요

UI 자동화 이벤트 개요