UI 자동화 개요
Microsoft UI 자동화는 Windows용 접근성 프레임워크입니다. 데스크톱의 대부분의 UI 요소에 프로그래밍 방식으로 액세스할 수 있습니다. 이를 통해 화면 읽기 프로그램과 같은 보조 기술 제품이 최종 사용자에게 UI에 대한 정보를 제공하고 표준 입력 이외의 수단으로 UI를 조작할 수 있습니다. 또한 UI 자동화를 사용하면 자동화된 테스트 스크립트가 UI와 상호 작용할 수 있습니다.
UI 자동화는 Microsoft .NET Framework의 일부로 Windows XP에서 처음 사용할 수 있었습니다. 당시 관리되지 않는 C++ API도 게시되었지만 상호 운용성 문제로 인해 클라이언트 함수의 유용성이 제한되었습니다. Windows 7의 경우 API가 COM(구성 요소 개체 모델)에서 다시 작성되었습니다.
메모
이전 버전의 UI 자동화에서 도입된 라이브러리 함수는 아직 문서화되어 있지만 새 애플리케이션에서 사용하면 안 됩니다.
UI 자동화 클라이언트 애플리케이션은 여러 Microsoft Windows 제어 프레임워크에서 작동한다는 확신을 가지고 작성할 수 있습니다. UI 자동화 코어는 다양한 UI 부분의 기초가 되는 프레임워크의 차이를 마스크합니다. 예를 들어 WPF(Windows Presentation Foundation) 단추의 콘텐츠 속성, Microsoft Win32 단추의 캡션 속성 및 HTML 이미지의 ALT 속성은 모두 UI 자동화 보기에서 이름 단일 속성에 매핑됩니다.
UI 자동화는 Windows XP, Windows Server 2003 이상 운영 체제에서 전체 기능을 제공합니다.
UI 자동화 공급자는 컨트롤에서 UI 자동화 지원을 구현하고 기본 제공 브리징 서비스를 통해 Microsoft Active Accessibility 클라이언트 애플리케이션에 대한 일부 지원을 제공하는 구성 요소입니다.
메모
UI 자동화는 다른 사용자에 의해 시작된 프로세스 사이의 통신을 실행 명령으로 활성화하지 않습니다.
이 항목에는 다음 섹션이 포함되어 있습니다.
UI 자동화 구성 요소
UI 자동화에는 다음 표와 같이 네 가지 주요 구성 요소가 있습니다.
구성 요소 | 묘사 |
---|---|
공급자 API | UI 자동화 공급자가 구현하는 COM 인터페이스 집합입니다. UI 자동화 공급자는 UI 요소에 대한 정보를 제공하고 프로그래밍 방식 입력에 응답하는 개체입니다. |
클라이언트 API | 클라이언트 애플리케이션이 UI에 대한 정보를 가져오고 컨트롤에 입력을 보낼 수 있도록 하는 COM 인터페이스 집합입니다.
참고:사용되지 않는 컨트롤 패턴 함수 및 더 이상 사용되지 않는 노드 함수 설명된 함수는 더 이상 사용되지 않습니다. 대신, 클라이언트 애플리케이션은 UI 자동화 요소 인터페이스의 클라이언트에서 설명된 UI 자동화 COM 인터페이스를 사용해야 합니다. |
UIAutomationCore.dll | 공급자와 클라이언트 간의 통신을 처리하는 런타임 라이브러리(UI 자동화 코어라고도 함). |
Oleacc.dll | Microsoft Active Accessibility 및 프록시 개체에 대한 런타임 라이브러리입니다. 또한 라이브러리는 Win32 컨트롤을 지원하기 위해 Microsoft Microsoft Active Accessibility에서 UI 자동화 프록시에 사용하는 프록시 개체를 제공합니다. |
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 Automation 애플리케이션 프로젝트에 UIAutomation.h를 포함하는 것이 가장 좋습니다. |
UI 자동화 API를 사용하는 애플리케이션을 개발하는 경우 프로젝트에 UIAutomation.h를 포함해야 합니다. 애플리케이션에서 Microsoft Active Accessibility를 지원하는 경우 Oleacc.h 헤더 파일을 포함합니다. GUID를 사용하는 UI 자동화 애플리케이션에도 Initguid.h 헤더 파일이 필요합니다. 필요한 경우 UIAutomation.h 앞에 Initguid.h를 포함해야 합니다.
UI 자동화 모델
UI 자동화는 UI의 모든 요소를 IUIAutomationElement 인터페이스가 나타내는 개체로 클라이언트 애플리케이션에 노출합니다. 요소는 바탕 화면을 루트 요소로 하는 트리 구조에 포함됩니다. 클라이언트는 트리의 원시 보기를 컨트롤 뷰 또는 콘텐츠 뷰로 필터링할 수 있습니다. 이러한 구조의 표준 보기는 Windows SDK에 포함된 검사 애플리케이션을 사용하여 쉽게 볼 수 있습니다. 애플리케이션은 사용자 지정 보기를 만들 수도 있습니다.
UI 자동화 요소는 컨트롤 또는 UI 요소의 속성을 노출합니다. 이러한 속성 중 하나는 컨트롤 또는 UI 요소의 기본 모양과 기능을 단추 또는 확인란과 같이 인식할 수 있는 단일 엔터티로 정의하는 컨트롤 형식입니다. 컨트롤 형식에 대한 자세한 내용은 UI 자동화 컨트롤 형식 개요참조하세요.
또한 UI 자동화 요소는 하나 이상의 컨트롤 패턴을 노출합니다. 컨트롤 패턴은 특정 컨트롤 형식과 관련된 속성 집합을 제공합니다. 또한 컨트롤 패턴은 클라이언트 애플리케이션이 요소에 대한 자세한 정보를 얻고 요소에 입력을 제공할 수 있도록 하는 메서드를 노출합니다. 컨트롤 패턴에 대한 자세한 내용은 UI 자동화 컨트롤 패턴 개요참조하세요.
메모
컨트롤 형식과 컨트롤 패턴 사이에는 일대일 대응이 없습니다. 컨트롤 패턴은 여러 컨트롤 형식에서 지원될 수 있으며, 컨트롤은 여러 컨트롤 패턴을 지원할 수 있으며, 각 컨트롤 패턴은 동작의 다양한 측면을 노출합니다. 예를 들어 콤보 상자에는 확장 및 축소 기능을 나타내는 컨트롤 패턴과 선택 메커니즘을 나타내는 컨트롤 패턴이 두 개 이상 있습니다. 그러나 컨트롤은 단일 컨트롤 형식만 나타낼 수 있습니다.
UI 자동화는 이벤트를 통해 클라이언트 애플리케이션에 정보를 제공합니다. WinEvents와 달리 UI 자동화 이벤트는 브로드캐스트 메커니즘을 기반으로 하지 않습니다. UI 자동화 클라이언트는 특정 이벤트 알림을 등록하고 특정 속성 및 컨트롤 패턴 정보를 이벤트 처리기에 전달하도록 요청할 수 있습니다. 또한 UI 자동화 이벤트에는 UI 자동화 이벤트를 발생시킨 요소에 대한 참조가 포함됩니다. 공급자는 클라이언트가 수신 대기하는지 여부에 따라 이벤트를 선택적으로 발생시켜 성능을 향상시킬 수 있습니다. 이벤트에 대한 자세한 내용은 UI 자동화 이벤트 개요참조하세요.