반응형

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

[S/W 접근성] InvokePattern 요소 제어하기 실습 (시나리오)

InvokePattern 요소 제어하기 실습 이번에는 InvokePattern 개체를 이용하여 다른 프로세스를 간단하게 제어하는 프로그램을 만들어 봅시다. [그림] Invoke 요소 제어기 실행화면 이번에 작성할 Invoke 요소 제어기는 Windows Forms 응용 프로그램입니다. 프로세스 목록 새로고침 버튼을 클릭하면 메인 창이 있는 프로세스 목록이 리스트 상자에 표시합니다. 그리고 프로세스 리스트 상자에서 항목을 선택하면 해당 프로세스의 메인 창의 자식 요소 중에 InvokePatten 을 지원하는 자동화 요소를 조사하여 가운데 리스트 상자에 표시합니다. 그리고 가운데 상자의 항목을 선택하면 선택한 항목과 매핑하는 컨트롤을 Invoke 합니다. 이는 다른 프로세스의 버튼을 클릭한 것과 같은 효과를..

[S/W 접근성] InvokePattern

5.2.5 InvokePattern InvokePattern은 버튼처럼 최종 사용자의 명령을 수행할 수 있는 컨트롤 패턴입니다. InvokePattern 클래스에는 Invoke 메서드를 제공하여 프로그램 방식으로 InvokePattern 개체에게 명령을 전달할 수 있습니다. 그리고 정적 필드로 InvokedEvent를 제공하여 컨트롤을 호출하는 것을 감지할 수 있습니다.Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, ae, TreeScope.Element, new AutomationEventHandler(OnInvoke)); 자동화 이벤트 핸들러에 대리할 수 있는 메서드의 시그니쳐는 다음과 같습니다. void OnInvoke(object..

[S/W 접근성] GridPattern, GridItemPattern

5.2.3 GridPattern GridPattern은 자식 요소를 보관하는 컬렉션의 컨터이너 역할을 하는 컨트롤 패턴입니다. System.Object System.Windows.Automation.BasePattern System.Windows.Automation.GridPattern System.Windows.Automation.TablePattern 네임스페이스: System.Windows.Automation 어셈블리: UIAutomationClient(UIAutomationClient.dll) GridPattern의 Current 및 Cached 속성으로 GridPatternInformation 구조체를 접근할 수 있습니다. 그리고 GridPatternInformation 구조체에는 열의 수와 행..

[S/W 접근성] ExpandCollapsePattern

5.2.3 ExpandCollapsePattern ExpandCollapsepattern은 화면에 표시하는 영역을 펼치거나 축소할 수 있는 컨트롤의 패턴 클래스입니다. System.Object System.Windows.Automation.BasePattern System.Windows.Automation.ExpandCollapsePattern 네임스페이스: System.Windows.Automation 어셈블리: UIAutomationClient(UIAutomationClient.dll) ExpandCollapsePattern의 Current 및 Cached 속성으로 ExpandCollapsePatternInformation 구조체를 접근할 수 있습니다. ExpandCollapsePatternInfor..

[S/W 접근성] DockPattern

5.2 각 패턴 별 속성 및 메서드 UI 자동화 평가 도구나 보조 기술 등을 만들 때는 자동화 요소의 컨트롤 패턴에 따라 프로그램 방식으로 상태를 얻어오거나 변경 및 제어합니다. UI 자동화 기술에서는 컨트롤을 사용할 수 있는 기능에 따라 컨트롤 패턴을 클래스로 정의하여 패턴마다 메서드, 속성, 이벤트 등을 제공하고 있습니다. 각각의 컨트롤 패턴 클래스에서는 Current 및 Cached 속성으로 각 패턴 정보 구조체를 제공하고 있어서 필요한 정보를 얻어올 수 있습니다. 그리고 각 패턴 클래스에서는 정적 필드로 자동화 패턴과 자동화 속성을 제공하여 자동화 요소 개체의 GetCurrentPropertyValue 메서드나 GetCurrentPattern 메서드를 호출할 때 입력 인자로 전달할 자동화 패턴과 ..

[S/W 접근성] 컨트롤 패턴 종류

5. 컨트롤 패턴 UI 자동화 기술에서는 컨트롤을 사용할 수 있는 기능에 따라 컨트롤 패턴을 정의하여 패턴마다 메서드, 속성, 이벤트 등을 제공하고 있습니다. UI 자동화 평가 도구나 클리이언트 응용에서는 자동화 요소가 어떠한 컨트롤 패턴인지 확인하여 해당 컨트롤 패턴에서 제공하는 메서드를 이용하여 컨트롤의 기능을 프로그램 방식으로 제어하거나 속성이나 이벤트로 컨트롤의 상태를 확인할 수 있습니다. 5.1 컨트롤 패턴 종류 UI 자동화 기술에서는 컨트롤을 사용할 수 있는 독립적인 기능들을 컨트롤 패턴으로 정의하였습니다. 서로 다른 컨트롤이 같은 기능을 제공하는 경우도 있기 때문에 컨트롤과 컨트롤 패턴은 1:1 매핑 관계가 아닙니다. 하나의 컨트롤이 여러 컨트롤 패턴에 해당할 수도 있고 컨트롤 상태에 따라 ..

[S/W 접근성] TreeWalker 메서드

4.2 TreeWalker 메서드 TreeWalker 클래스에서는 다양한 형태로 트리 구조에서 계층적으로 자동화 요소를 검색할 수 있는 메서드를 제공하고 있습니다. using System; using System.Windows.Automation; using System.Runtime.InteropServices; namespace 요소를_포함하는_윈도우_검색 { class Program { static void Main(string[] args) { AutomationElement ae = AutomationElement.FromHandle( WrapApi.GetDesktopWindow()); ListAE(ae, 0); } private static void ListAE(AutomationElement..

[S/W 접근성] TreeWalker 개체 참조

4.1 TreeWalker 개체 참조 TreeWalker 개체를 참조하는 방법에는 TreeWalker의 정적 필드를 통해 미리 제공하고 있는 TreeWalker 개체를 참조하는 방법과 원하는 조건을 인자로 새로운 TreeWalker 개체를 생성하는 방법이 있습니다.public static readonly TreeWalker RawViewWalker;public static readonly TreeWalker ControlViewWalker;public static readonly TreeWalker ContentViewWalker;publid TreeWalker(Condition condition); 이번에는 원하는 조건을 인자로 새로운 트리 개체를 생성하는 예를 살펴볼게요. 여기에서는 윈도우즈 패턴과 ..

[S/W 접근성] 자동화 트리 (데스크 톱의 모든 하위 요소 출력)

4. 자동화 트리 UI 자동화 기술에서는 보조 기술이나 UI 클라이언트 응용 프로그램에서 자동화 요소 정보를 계층화하여 탐색 편의성을 제공하고 있습니다. UI 자동화 기술에서는 Raw 뷰, 컨트롤 뷰, 콘텐츠 뷰로 세 가지 기본 뷰를 제공합니다. Raw 뷰는 자동화 요소 개체의 전체 트리입니다. 컨트롤 뷰는 Raw 뷰의 하위 집합으로 상호 작용하는 UI 항목들로 구성하는 뷰이고 콘텐츠 뷰는 컨트롤 뷰의 하위 집합으로 콤보 박스처럼 사용자가 선택할 수 있는 항목들로 구성하고 있는 자동화 요소로 구성합니다. UI 자동화 기술에서는 세 가지의 자동화 트리를 사용할 수 있게 TreeWalker 클래스를 제공하고 있고 정적 필드로 RawViewWalker, ControlViewWalker, ContentViewW..

[S/W 접근성] AutomationElement 메서드(속성 검색)

이번에는 자동화 요소 개체로 속성을 검색하는 메서드를 살펴봅시다.public Object GetCachedPropertyValue ( AutomationProperty property);public Object GetCachedPropertyValue ( AutomationProperty propery, bool ignore);public Object GetCurrentPropertyValue ( AutomationProperty property);public Object GetCurrentPropertyValue ( AutomationProperty propery, bool ignore);public AutomationProperty[] GetSupportedProperties ( ); 다음은 자동화 ..

반응형