화면 좌표로 UI 요소 탐색
응용 프로그램 설명
화면 좌표를 이용하여 UI 정보를 수집하여 자동화 속성 정보를 콘솔 화면에 출력
응용 프로그램 유형
C# 콘솔 응용 프로그램
요구조건
UI 자동화 .NET 어셈블리 참조(솔루션 탐색기의 프로젝트의 참조 노드에 마우스 오른쪽 버튼 클릭하여 컨텍스트 메뉴에서 참조 추가)
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);
foreach (AutomationElement dae in dictionary.Values) { ViewAEInfo(dae); } Console.ReadKey(); }
private static void ViewAEInfo(AutomationElement ae) { Console.WriteLine("요소명:{0}", ae.Current.Name); Console.WriteLine("사각영역:{0}", ae.Current.BoundingRectangle); Console.WriteLine("클래스 이름:{0}", ae.Current.ClassName); Console.WriteLine("컨트롤 유형:{0}", ae.Current.ControlType.ProgrammaticName); if (ae.Current.LabeledBy != null) { Console.WriteLine("LabledBy 이름:{0}", ae.Current.LabeledBy.Current.Name); } Console.WriteLine("윈도우 창 핸들:{0}", ae.Current.NativeWindowHandle); Console.WriteLine("프로세스 ID:{0}", ae.Current.ProcessId); } } } |
[소스] 화면 좌표로 UI 요소 탐색
'.NET > 소프트웨어 접근성, UI 자동화' 카테고리의 다른 글
[S/W 접근성] TreeWalker를 이용하여 데스크 톱의 자식 요소 조사 (0) | 2016.04.19 |
---|---|
[S/W 접근성] 화면 좌표로 UI 요소 탐색 후 속성 타입 얻어오기 (0) | 2016.04.19 |
[S/W 접근성] 화면 좌표로 InvokePattern 검색 (0) | 2016.04.19 |
[S/W 접근성] 포커스 소유한 자동화 요소 속성 출력 (0) | 2016.04.19 |
[S/W 접근성] 포커스 트래커 (0) | 2016.04.19 |