이번에는 자동화 요소 개체로 패턴을 검색하는 메서드를 살펴봅시다.
public Object GetCachedPattern(AutomationPattern pattern);
public Object GetCurrentPattern(AutomationPattern pattern);
public AutomationPattern[] GetSupportedPatterns();
public bool TryGetCachedPattern(AutomationPattern pattern, out Object pattern_obj);
public bool TryGetCurrentPattern(AutomationPattern pattern, out Object pattern_obj);
GetXXXPattern 메서드는 입력인자로 전달받은 패턴 개체를 검색할 때 사용합니다. 다음은 InvokePattern (버튼 처럼 사용자 명령을 수신하는 자동화 요소의 패턴)인지 확인하는 로직입니다.
InvokePattern ip = null;
ip = dae.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
if (ip != null)
{
Console.WriteLine(dae.Current.Name);
}
using System; using System.Windows.Automation; using System.Windows; using System.Collections.Generic;
namespace 패턴_검색 { class Program { static void Main(string[] args) { AutomationElement ae = AutomationElement.RootElement; Rect rect = ae.Current.BoundingRectangle; AutomationElement sae; Dictionary<int, AutomationElement> dictionary = new Dictionary<int, AutomationElement>(); for (int x = 0; x < rect.Right; x = x + 20) { for (int y = 0; y < rect.Bottom; y += 20) { sae = AutomationElement.FromPoint(new Point(x, y)); dictionary[sae.Current.NativeWindowHandle] = sae; Console.Write("."); } } Console.WriteLine("요소 개수:{0}", dictionary.Count);
InvokePattern ip = null; foreach (AutomationElement dae in dictionary.Values) { try { ip = dae.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern; if (ip != null) { Console.WriteLine(dae.Current.Name); } } catch{ } } Console.ReadKey(); } } } |
[소스 3.2] 자동화 요소 개체로 InvokePattern 요소 검색
'프로그래밍 기술 > 소프트웨어 접근성, UI 자동화' 카테고리의 다른 글
[S/W 접근성] 컨트롤 패턴 종류 (0) | 2016.04.19 |
---|---|
[S/W 접근성] TreeWalker 메서드 (0) | 2016.04.19 |
[S/W 접근성] TreeWalker 개체 참조 (0) | 2016.04.19 |
[S/W 접근성] 자동화 트리 (데스크 톱의 모든 하위 요소 출력) (0) | 2016.04.19 |
[S/W 접근성] AutomationElement 메서드(속성 검색) (0) | 2016.04.19 |
[S/W 접근성] AutomationElement 메서드 (0) | 2016.04.19 |
[S/W 접근성] 자동화 요소 (0) | 2016.04.19 |
[S/W 접근성] 포커스 트래커 만들기 (0) | 2016.04.19 |
[S/W 접근성] UI 자동화 기술 개요 (0) | 2016.04.19 |
[S/W 접근성] 소프트웨어 접근성 지침 (0) | 2016.04.19 |