포커스 소유한 자동화 요소 속성 출력
프로그램 설명
포커스(초점)이 바뀔 대마다 포커스를 소유한 UI 요소의 자동화 요소 속성을 콘솔 화면에 출력
프로그램 유형
C# 콘솔 응용 프로그램
요구 조건
UI 자동화 관련 .NET 어셈블리 참조 추가(솔루션 탐색기의 프로젝트의 참조 노드에서 오른쪽 마우스 클릭으로 컨텍스트 메뉴를 띄운 후 참조 추가)
[그림] UI 자동화 기술 참조 추가
using System;
using System.Windows.Automation;
namespace 예제_3._1_자동화_요소_정보
{
class Program
{
static void Main(string[] args)
{
AutomationFocusChangedEventHandler afceh = null;
afceh = new AutomationFocusChangedEventHandler(FocusChangedEventHandler);
Automation.AddAutomationFocusChangedEventHandler(afceh);
Console.ReadLine();
Automation.RemoveAutomationFocusChangedEventHandler(afceh);
}
static void FocusChangedEventHandler(object obj, AutomationFocusChangedEventArgs e)
{
AutomationElement ae = AutomationElement.FocusedElement;
ViewAEInfo(ae);
}
private static void ViewAEInfo(AutomationElement ae)
{
Console.WriteLine("요소명:{0}",ae.Current.Name);
Console.WriteLine("가속화 키:{0}", ae.Current.AcceleratorKey);
Console.WriteLine("액세스 키:{0}", ae.Current.AccessKey);
Console.WriteLine("자동화 요소 ID:{0}", ae.Current.AutomationId);
Console.WriteLine("사각영역:{0}", ae.Current.BoundingRectangle);
Console.WriteLine("클래스 이름:{0}", ae.Current.ClassName);
Console.WriteLine("컨트롤 유형:{0}", ae.Current.ControlType.ProgrammaticName);
Console.WriteLine("Framework ID:{0}", ae.Current.FrameworkId);
Console.WriteLine("포커스 소유 :{0}", ae.Current.HasKeyboardFocus);
Console.WriteLine("도움말:{0}", ae.Current.HelpText);
Console.WriteLine("컨텐츠 여부:{0}", ae.Current.IsContentElement);
Console.WriteLine("컨트롤 여부:{0}", ae.Current.IsControlElement);
Console.WriteLine("활성화 여부:{0}", ae.Current.IsEnabled);
Console.WriteLine("포커스 소유 가능 여부:{0}", ae.Current.IsKeyboardFocusable);
Console.WriteLine("화면 비표시 여부:{0}", ae.Current.IsOffscreen);
Console.WriteLine("내용 보화(패스워드) 여부:{0}", ae.Current.IsPassword);
Console.WriteLine("IsRequiredForForm:{0}", ae.Current.IsRequiredForForm);
Console.WriteLine("아이템 상태:{0}", ae.Current.ItemStatus);
Console.WriteLine("아이템 형식:{0}", ae.Current.ItemType);
if (ae.Current.LabeledBy != null)
{
Console.WriteLine("LabledBy 이름:{0}", ae.Current.LabeledBy.Current.Name);
}
Console.WriteLine("윈도우 창 핸들:{0}", ae.Current.NativeWindowHandle);
Console.WriteLine("컨트롤 방향:{0}", ae.Current.Orientation);
Console.WriteLine("프로세스 ID:{0}", ae.Current.ProcessId);
}
}
}
'.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 접근성] 화면 좌표로 UI 요소 탐색 (0) | 2016.04.19 |
[S/W 접근성] 포커스 트래커 (0) | 2016.04.19 |