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

[S/W 접근성] TreeWalker를 이용하여 데스크 톱의 자식 요소 조사

언제나휴일 2016. 4. 19. 11:03
반응형

TreeWalker를 이용하여 데스크 톱의 자식 요소 조사


응용 프로그램 설명

TreeWalker 를 이용하여 데스크 톱의 하위 자식 요소를 조사하여 콘솔 화면에 출력


응용 프로그램 유형

C# 콘솔 응용 프로그램


요구조건

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


using System;

using System.Windows.Automation;

using System.Runtime.InteropServices;

 

 

namespace 예제_4._1_자동화_트리_개요

{

    static class WrapApi

    {

        [DllImport("user32")]

        internal static extern IntPtr GetDesktopWindow();

    }

    class Program

    {

        static void Main(string[] args)

        {

            AutomationElement ae = AutomationElement.FromHandle(

                WrapApi.GetDesktopWindow());

           

 

            ListAE(ae,0);  

        }

 

        private static void ListAE(AutomationElement ae,int depth)

        {

            TreeWalker tw = TreeWalker.RawViewWalker;

            if (ae == null)

            {

                return;

            }

           

            ViewAE(ae, depth);

           

            AutomationElement cae = tw.GetFirstChild(ae);

           

            while (cae != null)

            {

                ListAE(cae, depth + 1);

                cae = tw.GetNextSibling(cae);

               

            }

           

        }

 

        private static void ViewAE(AutomationElement ae,int depth)

        {           

            Console.WriteLine("{0}:{1}", ae.Current.Name, depth);

        }

    }

}

반응형