.NET/소프트웨어 접근성, UI 자동화

[S/W 접근성] 화면 좌표로 UI 요소 탐색 후 속성 타입 얻어오기

언제나휴일 2016. 4. 19. 10:55
반응형

화면 좌표로 UI 요소 탐색 후 속성 타입얻어오기


응용 프로그램 설명

화면 좌표로 UI 요소 탐색 후 속성 정보 출력


응용 프로그램 유형

C# 콘솔 응용 프로그램


요구조건

UI 자동화 .NET 어셈블리 참조(솔루션 탐색기의 프로젝트의 참조 노드에 마우스 오른쪽 버튼 클릭하여 컨텍스트 메뉴에서 참조 추가)



Program.cs



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;

           

            AutomationProperty[] aps=null;           

            foreach (AutomationElement dae in dictionary.Values)

            {

               

                aps = dae.GetSupportedProperties();               

                foreach (AutomationProperty ap in aps)

                {

                    //Console.WriteLine("{0}:{1}", ap.Id, ap.ProgrammaticName);

                   

                    Console.Write("{0}:",Automation.PropertyName(ap));

                   

                    object value = dae.GetCurrentPropertyValue(AutomationProperty.LookupById(ap.Id));

                    Console.WriteLine(value);

                }

            }

            Console.ReadKey();

        }

    }

}

 

 

반응형