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

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습- 프로세스, 자동화 요소 래퍼

언제나휴일 2016. 5. 5. 18:43
반응형

UI 자동화 요소 탐색기 만들기 실습 - 프로세스, 자동화 요소 래퍼



자동화 요소 탐색기

[그림] 작성할 UI 자동화 요소 탐색기



 프로세스 목록을 리스트 상자에 표시하고 선택한 프로세스 정보를 기억할 수 있게 래핑한 프로세스 클래스를 추가합시다.

 

 WrapProcesss 클래스에 관한 설명은 초점 제어기에서 다루었습니다. 참고하시기 바랍니다.


[소프트웨어 접근성] 초점 제어기 만들기 실습

 

using System;

using System.Diagnostics;

using System.Windows.Automation;

namespace UsingTreeWalker

{

    public class WrapProcess

    {

        public Process Process

        {

            get;

            private set;

        }

        public string Title

        {

            get

            {

                return Process.ProcessName + ":" + Process.MainWindowTitle;

            }

        }

        public AutomationElement RootElement

        {

            get

            {

                if (Process.MainWindowHandle == IntPtr.Zero)

                {

                    return null;

                }

                return AutomationElement.FromHandle(Process.MainWindowHandle);

            }

        }

        public WrapProcess(Process process)

        {

            Process = process;

        }

        public override string ToString()

        {

            return Title;

        }

    }

}

[소스] WrapProcess.cs

 

 

 그리고 AutomationElement의 정보를 표시할 때 컨트롤 이름과 지역화 컨트롤 타입을 조합하여 표시하는 래퍼 클래스를 정의하세요. 이 부분도 초점 제어기에서 설명했던 부분입니다.

 

using System.Windows.Automation;

namespace UsingTreeWalker

{

    public class WrapAE

    {

        public AutomationElement AE

        {

            get;

            private set;

        }

        public string Name

        {

            get

            {

                return AE.Current.Name;

            }

        }

        public string ControlType

        {

            get

            {

                return AE.Current.LocalizedControlType;

            }

        }

        public string Boundary

        {

            get

            {

                return AE.Current.BoundingRectangle.ToString();

            }

        }

        public WrapAE(AutomationElement ae)

        {

            AE = ae;

        }

        public override string ToString()

        {

            return ControlType+":"+Name;

        }

    }

}

[소스] WrapAE.cs



[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 컨트롤 배치


[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 핵심 클래스 UISearcher 구현


[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 메인 폼 구현


반응형