반응형

프로그래밍 기술/소프트웨어 접근성, UI 자동화 67

[소프트웨어 접근성] 구조 변경 감시자 만들기 실습

구조 변경 감시자 만들기 실습 이번에는 클라이어트용 UI 자동화 이벤트를 이용하여 자식 요소를 추가하거나 제거할 때의 이벤트를 구독하는 구조 변경 감시자 응용 프로그램을 만들어 봅시다. *Visual Studio 2010으로 만든 솔루션을 압축한 파일입니다. 자신의 개발 환경에 맞게 변환하세요.* [그림] 작성할 구조 변경 감시자 실행화면 구조 변경 감시자 응용에서는 프로세스 목록 새로 고침 버튼을 클릭하면 리스트 박스에 프로세스 목록을 표시합니다. 프로세스 목록 리스트 상자에서 항목을 선택하면 선택한 프로세스의 자동화 요소를 가운데 리스트 상자에 표시합니다. 그리고 선택한 프로세스의 메인 창의 자식 요소를 추가하거나 제거하는 이벤트가 발생하면 이를 마지막 리스트 상자에 표시합니다. 이를 위해 UI 자동..

[소프트웨어 접근성] 클라이언트 용 UI 자동화 이벤트

클라이언트용 UI 자동화 이벤트 이 책에서는 UI 자동화 클라이언트 응용과 보조 기술에서 UI 자동화 기술을 사용하는 방법을 중점으로 소개하고 있습니다. 이제 클라이언트용 UI 자동화 이벤트를 살펴봅시다. 클라이언트용 UI 자동화 이벤트에서는 Automation 클래스의 정적 메소드를 사용하여 원하는 UI 자동화 이벤트를 구독 및 제거할 수 있습니다. public static void AddAutomationFocusChangedEventHandler( AutomationFocusChangedEventHandler eventHandler) 초점 변경 이벤트 핸들러를 등록합니다. public static void AddAutomationPropertyChangedEventHandler( Automation..

[소프트웨어 접근성] UI 자동화 이벤트와 이벤트 인자 형식

UI 자동화 이벤트와 이벤트 인자 형식 UI 자동화 이벤트는 보조 기술이나 UI 자동화 클라이언트 응용을 위한 핵심 기술입니다. 보조 기술이나 접근성 평가 도구와 같은 UI 자동화 클라이언트에서는 자동화 요소의 변화를 감지하여 필요한 정보를 최종 사용자에게 알려주기 위하여 UI 자동화 이벤트를 사용합니다. UI 자동화 이벤트는 크게 속성 변경, 요소 동작, 구조 변경, 전역 데스크톱 변경으로 분류합니다. 속성 변경 이벤트는 레이블의 캡션명이 바뀌거나 체크 박스의 체크 상태가 바뀌는 등의 자동화 요소의 속성이 변경할 때 발생하는 UI 자동화 이벤트입니다. 요소 동작 이벤트는 버튼을 클릭하는 것처럼 사용자의 명령으로 UI를 변경할 때 발생합니다. 구조 변경 이벤트는 UI 자동화 트리의 구조에 변경이 생길 때..

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 메인 폼 구현

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 메인 폼 구현 [그림] 작성할 UI 자동화 요소 탐색기 *Visual Studio 2010으로 작성한 솔루션입니다. 자신의 개발 도구 버전에 맞게 변환하세요. * 이제 폼을 구현할 차례입니다. 먼저 프로세스 새로고침 버튼에 클릭 이벤트 핸들러를 추가합니다. private void btn_refresh_Click(object sender, EventArgs e) { 프로세스 ListBox의 항목을 지웁니다. lbox_process.Items.Clear(); 프로세스 목록을 구합니다. Process[] processes = Process.GetProcesses(); 프로세스 목록의 각 프로세스마다 다음을 반복합니다. foreach (Process..

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 핵심 클래스 UISearcher 구현

UI 자동화 요소 탐색기 만들기 실습 - 핵심 클래스 UISearcher 구현 [그림] 작성할 UI 자동화 요소 탐색기 이번에는 메인 폼에서 사용자의 명령을 받았을 때 실제 작업을 처리하는 클래스를 정의합시다. 클래스 이름은 UISearcher로 할게요. public class UISearcher 멤버 필드로 래핑한 자동화 요소가 있고 생성자에서 입력 받은 값으로 기억하게 합시다. UI 자동화 요소 탐색기에서는 특정 프로세스를 선택하였을 때 메인 창의 UI 자동화 요소를 기준으로 탐색할 것입니다. 이를 위해서 선택한 프로세스의 메인 창의 UI 자동화 요소를 래핑한 자동화 요소를 생성자의 입력 인자로 전달받아 멤버 필드 wae를 설정합니다. WrapAE wae; public UISearcher(WrapAE..

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습- 프로세스, 자동화 요소 래퍼

UI 자동화 요소 탐색기 만들기 실습 - 프로세스, 자동화 요소 래퍼 [그림] 작성할 UI 자동화 요소 탐색기 프로세스 목록을 리스트 상자에 표시하고 선택한 프로세스 정보를 기억할 수 있게 래핑한 프로세스 클래스를 추가합시다. WrapProcesss 클래스에 관한 설명은 초점 제어기에서 다루었습니다. 참고하시기 바랍니다. [소프트웨어 접근성] 초점 제어기 만들기 실습 using System.Windows.Automation; namespace UsingTreeWalker { public class WrapAE { public AutomationElement AE { get; private set; } public string Name { get { return AE.Current.Name; } } pub..

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 컨트롤 배치

UI 자동화 요소 탐색기 만들기 실습 - 컨트롤 배치 이제 TreeWalker 클래스를 이용하여 UI 자동화 요소를 탐색기를 만들어 봅시다. UI 자동화 요소 탐색기는 프로세스 목록을 확인하여 선택하면 활성화 상태의 컨트롤 요소를 트리 뷰에 표시합시다. 그리고 TreeWalker의 정적 TreeWalker로 탐색하여 트리 뷰 항목을 변경하는 기능을 제공합시다. 또한 트리 뷰의 항목을 선택하였을 때 선택한 노드의 UI 자동화 요소를 레이블에 표시하고 자식, 형제, 부모를 찾아 레이블에 표시하는 기능을 제공합시다. [그림] UI 자동화 요소 탐색기 실행 화면 먼저 Windows Forms 응용 프로그램 프로젝트를 생성하시고 UI 자동화 관련 어셈블리를 참조 추가합니다. 그리고 폼에 컨트롤을 배치하세요. [그..

[소프트웨어 접근성] 초점 제어기 만들기 실습

[소프트웨어 접근성] 초점 제어기 만들기 실습 이번에는 SetFocus 메서드를 이용하여 원하는 자동화 요소로 초점을 옮기는 프로그램을 작성합시다. [그림] 초점 제어기 실행화면 초점 제어기를 만들기 전에 타겟 데모 응용 프로그램을 만들기로 합시다. 타겟 데모 응용 프로그램은 12개의 버튼이 있고 1개의 Label이 있습니다. 이 프로그램은 버튼에 초점이 오면 어느 버튼에 초점이 왔는지 Label에 표시하는 응용 프로그램입니다. 먼저 Windows Forms 응용 프로젝트를 생성하세요. 그리고 Form1에 버튼 12개와 Label 1개를 배치하세요. 그리고 Label의 이름 속성을 lb_focus로 설정합니다. Fom1의 FormLoad 이벤트 핸들러를 추가하여 각 버튼에 초점이 왔을 때 lb_focus..

[S/W 접근성] 윈도우 옵저버 실습

윈도우 옵저버 실습 이번에는 컴퓨터 시스템에 윈도우가 열고 닫는 것을 관찰하는 윈도우 옵저버를 만들어 봅시다. [그림] 윈도우 옵저버 실행 화면 Form1에는 ListBox 컨트롤(Name: lbox_event)을 추가하였고 Dock속성을 Fill로 주었습니다. 윈도우 닫힘 자동화 이벤트에서는 닫힌 윈도우의 자동화 요소를 전달하지 않습니다. 이를 처리하기 위해 자동화 요소를 래핑한 클래스를 만들어서 내부에서 이를 처리할게요. public class EAE { 윈도우 닫힘 이벤트를 멤버로 추가합니다. public event AutomationEventHandler OnClose; 자동화 요소 이름 가져오기 속성을 제공합시다. public string Name { get; private set; } 생성자에..

[S/W 접근성] ValuePattern, WindowPattern

ValuePattern Value 패턴은 컨트롤 내에 내장 데이터를 갖는 컨트롤에서 지원하는 패턴입니다. System.Object System.Windows.Automation.BasePattern System.Windows.Automation.ValuePattern 네임스페이스: System.Windows.Automation 어셈블리: UIAutomationClient(UIAutomationClient.dll) ValuePattern의 Current 및 Cached 속성으로 ValuePatternInformation 구조체를 접근할 수 있습니다. 그리고 ValuePatternInformation 구조체에는 읽기 전용인지 확인하거나 값을 가져오기 할 수 있는 속성을 제공합니다. 속성명 설명 CanMaxi..

반응형