반응형

프로그래밍 기술 604

[소프트웨어 접근성] 클라이언트 용 UI 자동화 이벤트

클라이언트용 UI 자동화 이벤트 이 책에서는 UI 자동화 클라이언트 응용과 보조 기술에서 UI 자동화 기술을 사용하는 방법을 중점으로 소개하고 있습니다. 이제 클라이언트용 UI 자동화 이벤트를 살펴봅시다. 클라이언트용 UI 자동화 이벤트에서는 Automation 클래스의 정적 메소드를 사용하여 원하는 UI 자동화 이벤트를 구독 및 제거할 수 있습니다. public static void AddAutomationFocusChangedEventHandler( AutomationFocusChangedEventHandler eventHandler) 초점 변경 이벤트 핸들러를 등록합니다. public static void AddAutomationPropertyChangedEventHandler( Automation..

[소프트웨어 접근성] UI 자동화 이벤트와 이벤트 인자 형식

UI 자동화 이벤트와 이벤트 인자 형식 UI 자동화 이벤트는 보조 기술이나 UI 자동화 클라이언트 응용을 위한 핵심 기술입니다. 보조 기술이나 접근성 평가 도구와 같은 UI 자동화 클라이언트에서는 자동화 요소의 변화를 감지하여 필요한 정보를 최종 사용자에게 알려주기 위하여 UI 자동화 이벤트를 사용합니다. UI 자동화 이벤트는 크게 속성 변경, 요소 동작, 구조 변경, 전역 데스크톱 변경으로 분류합니다. 속성 변경 이벤트는 레이블의 캡션명이 바뀌거나 체크 박스의 체크 상태가 바뀌는 등의 자동화 요소의 속성이 변경할 때 발생하는 UI 자동화 이벤트입니다. 요소 동작 이벤트는 버튼을 클릭하는 것처럼 사용자의 명령으로 UI를 변경할 때 발생합니다. 구조 변경 이벤트는 UI 자동화 트리의 구조에 변경이 생길 때..

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

[소프트웨어 접근성] UI 자동화 요소 탐색기 만들기 실습 - 메인 폼 구현 [그림] 작성할 UI 자동화 요소 탐색기 *Visual Studio 2010으로 작성한 솔루션입니다. 자신의 개발 도구 버전에 맞게 변환하세요. * 이제 폼을 구현할 차례입니다. 먼저 프로세스 새로고침 버튼에 클릭 이벤트 핸들러를 추가합니다. private void btn_refresh_Click(object sender, EventArgs e) { 프로세스 ListBox의 항목을 지웁니다. lbox_process.Items.Clear(); 프로세스 목록을 구합니다. Process[] processes = Process.GetProcesses(); 프로세스 목록의 각 프로세스마다 다음을 반복합니다. foreach (Process..

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

UI 자동화 요소 탐색기 만들기 실습 - 핵심 클래스 UISearcher 구현 [그림] 작성할 UI 자동화 요소 탐색기 이번에는 메인 폼에서 사용자의 명령을 받았을 때 실제 작업을 처리하는 클래스를 정의합시다. 클래스 이름은 UISearcher로 할게요. public class UISearcher 멤버 필드로 래핑한 자동화 요소가 있고 생성자에서 입력 받은 값으로 기억하게 합시다. UI 자동화 요소 탐색기에서는 특정 프로세스를 선택하였을 때 메인 창의 UI 자동화 요소를 기준으로 탐색할 것입니다. 이를 위해서 선택한 프로세스의 메인 창의 UI 자동화 요소를 래핑한 자동화 요소를 생성자의 입력 인자로 전달받아 멤버 필드 wae를 설정합니다. WrapAE wae; public UISearcher(WrapAE..

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

UI 자동화 요소 탐색기 만들기 실습 - 프로세스, 자동화 요소 래퍼 [그림] 작성할 UI 자동화 요소 탐색기 프로세스 목록을 리스트 상자에 표시하고 선택한 프로세스 정보를 기억할 수 있게 래핑한 프로세스 클래스를 추가합시다. WrapProcesss 클래스에 관한 설명은 초점 제어기에서 다루었습니다. 참고하시기 바랍니다. [소프트웨어 접근성] 초점 제어기 만들기 실습 using System.Windows.Automation; namespace UsingTreeWalker { public class WrapAE { public AutomationElement AE { get; private set; } public string Name { get { return AE.Current.Name; } } pub..

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

UI 자동화 요소 탐색기 만들기 실습 - 컨트롤 배치 이제 TreeWalker 클래스를 이용하여 UI 자동화 요소를 탐색기를 만들어 봅시다. UI 자동화 요소 탐색기는 프로세스 목록을 확인하여 선택하면 활성화 상태의 컨트롤 요소를 트리 뷰에 표시합시다. 그리고 TreeWalker의 정적 TreeWalker로 탐색하여 트리 뷰 항목을 변경하는 기능을 제공합시다. 또한 트리 뷰의 항목을 선택하였을 때 선택한 노드의 UI 자동화 요소를 레이블에 표시하고 자식, 형제, 부모를 찾아 레이블에 표시하는 기능을 제공합시다. [그림] UI 자동화 요소 탐색기 실행 화면 먼저 Windows Forms 응용 프로그램 프로젝트를 생성하시고 UI 자동화 관련 어셈블리를 참조 추가합니다. 그리고 폼에 컨트롤을 배치하세요. [그..

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

[소프트웨어 접근성] 초점 제어기 만들기 실습 이번에는 SetFocus 메서드를 이용하여 원하는 자동화 요소로 초점을 옮기는 프로그램을 작성합시다. [그림] 초점 제어기 실행화면 초점 제어기를 만들기 전에 타겟 데모 응용 프로그램을 만들기로 합시다. 타겟 데모 응용 프로그램은 12개의 버튼이 있고 1개의 Label이 있습니다. 이 프로그램은 버튼에 초점이 오면 어느 버튼에 초점이 왔는지 Label에 표시하는 응용 프로그램입니다. 먼저 Windows Forms 응용 프로젝트를 생성하세요. 그리고 Form1에 버튼 12개와 Label 1개를 배치하세요. 그리고 Label의 이름 속성을 lb_focus로 설정합니다. Fom1의 FormLoad 이벤트 핸들러를 추가하여 각 버튼에 초점이 왔을 때 lb_focus..

지능형 에이전트(Intelligent agent)

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 지능형 에이전트를 알아보기로 해요. 지능형 에이전트(Intelligent agent) 특정 목적을 달성하기 위해 사용자 개입없이 작업을 수행하는 시스템 에이전트 설계 시 고려해야 할 과제 환경 PEAS Performance: 성능을 판별하는 기준이 필요합니다. Environmemt: 에이전트가 동작하는 환경을 파악해야 합니다. Actuators: 에이전트가 취할 수 있는 동작을 조사해야 합니다. Sensors: 에이전트가 감지해야 할 것들과 이에 관한 센서를 파악합니다. 예) 자동차 에이전트 Performancd: 안전, 이동시간, 안전, 고장 등 Environment: 도로, 보행자, 신호, 다른 차량 등 Actuators: 가속, 감속, 방향 전환 등 S..

인간의 뇌와 슈퍼 컴퓨터

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 인간의 뇌와 슈퍼 컴퓨터를 알아보기로 해요. 인간의 뇌 뉴런이라는 신경 세포에 의해 자극을 받아들이고 신호를 전달합니다. 인간은 천억(10의 11승)개의 뉴런을 갖고 있습니다. 그리고 메시지 송수신 역할을 담당하는 시냅스는 뉴런 하나에 1000여 개 정도 있습니다. 따라서 백조(10의 14)개의 시냅스가 있는 것입니다. 이 부분이 현재의 슈퍼 컴퓨터보다 뛰어난 점이죠. 연산을 수행하는 주기(Cycle)은 10의 -3승으로 1000Hz로 컴퓨터와 비교하면 현저히 떨어집니다. 슈퍼 컴퓨터 슈퍼 컴퓨터는 개인용 컴퓨터와 비교했을 때 연산을 수행하는 주기(Cycle)은 10의 -9승 정도로 비슷합니다. GHz 정도라고 보면 되겠죠. 개인용 컴퓨터보다 뛰어난 연산력을..

P - NP 문제

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 NP 완전(NP - Completeness) 이론에 관해 소개할게요. 1971년 스티븐 쿡(Steven Cook)과 1972년 리처드 카프(Richard Karp)는 논문을 통해 P-NP 문제를 꺼내들었죠. P는 Polynominal(다항) 시간에 문제를 풀수 있는 문제를 말해요. n 개의 자료가 있을 때 문제를 해결하는데 걸리는 시간을 n의 다항식(1, n, n^2 등)으로 표현할 수 있는 문제예요. 예를 들어 버블 정렬 알고리즘은 점근식 표기 O(n^2)으로 표현할 수 있어서 P 문제죠. 이와 같은 문제는 전산학에서 풀기 쉬운 문제 혹은 컴퓨터로 계산할 수 있는 문제라고 말합니다. NP는 문제 해결 방법을 찾는 것은 어렵지만 답을 제시했을 때 맞는지 틀리..

반응형