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