반응형

전체 글 2934

9. 접근성 평가 도구 만들기 - 4. WrapWinAPI 클래스 구현

9.2.2 WrapWinAPI 클래스 접근성 평가 도우미에서는 접근성 평가 프로세스를 선택하면 선택한 프로세스의 메인 창의 정보를 얻어올 것입니다. 이 과정에서 요소들의 화면 이미지를 캡쳐하는 기능을 구현하려고 하는데 평가 대상 창이 다른 창에 가려져 있을 수 있어서 초점을 변경하는 메서드를 제공하려 합니다. 여기서 반환하는 것은 초점을 변경하기 이전의 핸들입니다. 접근성 평가 도우미를 확장해서 구현하면 8장에서 래핑했던 Win32 API를 제공할 필요도 생길 수 있습니다. 여기에서는 Win32 API를 래핑하는 가장 간단한 방법을 이해하는 수준만 사용하였습니다. using System;using System.Runtime.InteropServices; namespace 예제_9_접근성_평가_도우미{ p..

9. 접근성 평가 도구 만들기 - 3. 속성과 컨트롤 패턴 열거형 정의하기

9. 2 접근성 평가 도우미 사용자 정의 형식 구현 접근성 평가 도우미를 구현하는 것은 사용자 정의 형식 구현을 먼저 설명한 이후에 사용자 정의 컨트롤, 폼 순으로 설명할게요. 여러분께서 순차적으로 구현하는 것은 폼부터 설명하는 것이 맞겠지만 분석하는 것은 내부부터 구현하는 것이 나을 것이라 생각합니다. 9.2.1 속성과 컨트롤 패턴 열거형 정의하기 접근성 요소의 기본 속성과 컨트롤 패턴은 다음처럼 열거형을 정의합시다. namespace 예제_9_접근성_평가_도우미{ public enum ENUM_UIProperty { NO_UIPROPERY=-1, EVALUATEVALUE, ACCELERATORKEY, ACCESSKEY, AUTOMATIONID, BOUNDINGRECTANGLE,CLASSNAME,CON..

9. 접근성 평가 도구 만들기 - 2. 사용자 정의 형식

9.1.2 사용자 정의 형식 접근성 평가 도우미에는 폼과 사용자 정의 컨트롤 외에도 접근성 평가를 위한 형식들을 정의해야 합니다. 여기서는 접근성 평가를 위한 형식 개체를 생성하고 관리하는 EvalManager 클래스를 정의합시다. 그리고 하나의 접근성 평가의 정보를 관리하는 AccEvalProject 클래스를 정의할게요. UI 자동화 요소는 EHAutoElem 형식으로 래핑하여 접근성 속성과 컨트롤 유형을 참조하기 쉽게 합시다. 그리고 평가 대상인 프로세스 정보는 EHProcess로 래핑할게요. 그리고 Win32 API를 래핑한 WrapWinAPI를 제공할 것입니다. 이 외에 UI 요소의 화면 정보를 캡쳐하고 Gray로 변환하는 일을 담당하는 ImageCapture 클래스를 제공할게요. 그리고 UI 자..

9. 접근성 평가 도구 만들기 - 1. 소개

9. 평가 도구 만들기 이번 장에서는 UI 자동화 기술을 이용하여 소프트웨어 접근성 평가할 때 응용 프로그램의 창의 UI 정보를 수집하여 편의성을 제공하는 도구를 만들어 봅시다. 여기서 만들 응용 프로그램의 이름은 접근성 평가 도우미라고 하겠습니다. 9. 1 접근성 평가 도우미 구조 접근성 평가 도우미의 화면 구성은 평가 프로젝트를 생성하고 평가 대상의 계층 구조와 요약 정보를 보여주는 MainForm과 평가 프로젝트 생성 과정에서 프로세스를 선택하는 폼, 실행 가능한 요소 항목을 보여주고 프로그램 방식으로 Invoke를 수행하게 하는 폼, 평가 대상을 이미지로 보여주는 폼, 특정 UI 요소의 사각 영역에 프로그램 방식의 하이라이트를 만들어주는 폼으로 구성할게요. [그림 9.1] 평가 도우미 폼 클래스 ..

[구글 Go 하자] 30. 배열의 요소를 순차적으로 방문하기

30. 배열의 요소를 순차적으로 방문하기 안녕하세요. 언제나 휴일입니다. 이전 게시글에서는 배열을 선언하는 방법을 살펴보았죠. 이번 게시글에서는 배열의 요소를 순차적으로 방문하는 방법을 알아보기로 합시다.배열의 요소를 순차적으로 방문하는 방법 중에 배열의 원소 개수를 구한 후에 인덱스를 이용하여 순차적으로 방문하는 방법이 있습니다. 이전 게시글에서 소개했듯이 배열의 원소 개수를 구할 때는 len 함수를 사용합니다. len(배열명) 다음처럼 배열 이름을 len 함수에 입력 인자로 전달하면 배열의 원소 개수를 얻어올 수 있습니다. arr := [5]int{12, 34, 23, 56, 34}var length intlength = len(arr) 그리고 인덱스를 0에서 length보다 작으면 반복하여 각 원소..

[구글 Go 하자] 29. 구글 Go 언어, 배열 기초

29. 구글 Go 언어, 배열 기초 안녕하세요. 언제나 휴일입니다. 이번에는 Go 언어의 배열에 관해 알아볼게요. Go언어의 배열은 같은 종류의 고정 개수의 데이터를 하나의 이름으로 관리하는 형식입니다.Go언어에서 배열을 선언할 때 원소 형식과 원소 개수를 지정하여 배열을 선언하거나 원소들의 초기값을 지정하여 선언할 수 있습니다.먼저 원소 형식과 원소 개수를 지정하여 배열을 선언하는 방법입니다.var 배열명 [원소개수] 원소 형식 다음은 int 형식의 3개의 원소를 관리할 수 있는 배열 scores를 선언한 예제 코드입니다. 배열에서 원소의 개수를 알고 싶을 때는 len(배열 이름)을 사용합니다. // Example 배열 기초package main import "fmt" func main() { var ..

[구글 Go 하자] 28. 구글 Go 언어 선택문은 switch

28. 구글 Go 언어 선택문은 switch 안녕하세요. 언제나 휴일입니다.이번에는 변수 값에 따라 특정 코드를 선택해서 수행하는 swith 선택문을 알아볼게요.switch 선택문은 switch 키워드 뒤에 태그나 표현 식을 사용하거나 case에 특정 표현을 사용하는 세 가지 방법으로 생각할 수 있어요.먼저 switch 키워드 뒤에 태그를 사용하는 방법을 살펴볼게요. switch tag{case 상수1: 수행 구문case 상수2: 수행 구문default: 수행 구문} switch 뒤에 태그 표현의 값이 특정 case에 표현한 상수 값이면 해당 수행 구문을 동작하고 그렇지 않을 때는 default의 수행 구문을 동작합니다. 다음은 정수를 입력받아서 0에서 4사이의 정수를 입력하면 한글로 해당 숫자를 출력하..

[구글 Go 하자] 27. Go 언어 반복문은 for 문, 반복문 탈출은 break

27. Go 언어 반복문은 for문, 반복문 탈출은 break 안녕하세요. 언제나 휴일입니다.이번에는 Go언어의 반복문을 알아볼게요. Go언어에서 제공하는 반복문은 for 문이예요. while 문이나 do while 문을 제공하지 않습니다. for 초기식; 조건식;조건 변화식{반복 수행할 구문} 프로젝트를 생성하여 1부터 100까지 정수의 합계를 계산하는 코드를 표현해 보아요. // Example 반복문(1부터 100까지 정수 합계 구하기)package main import "fmt" func main() { var sum = 0 for i := 1; i 100 { break } i++ } fmt.Println("1에서 ", i, " 까지 더하면 처음으로 100이 넘어요.") fmt.Println("합계..

[C언어 무료 동영상 강의] 82. 동적 메모리 할당 함수, 83. malloc 함수, 84. calloc 함수, 85. realloc 함수

[C언어 무료 동영상 강의] 82. 동적 메모리 할당 함수, 83. malloc 함수, 84. calloc 함수, 85. realloc 함수 다루는 내용동적 메모리 할당malloc 함수 사용법calloc 함수 사용법realloc 함수 사용법 free 함수 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C언어] 82. 동적 메모리 할당 함수[디딤돌 C언어] 83. malloc 함수[디딤돌 C언어] 84. calloc 함수 [디딤돌 C언어] 85. realloc 함수

[구글 Go 하자] 26. 엄격한 폼을 요구하는 if 조건문

26. 엄격한 폼을 요구하는 if 조건문 안녕하세요. 언제나 휴일입니다.이전 게시글에서는 콘솔에서의 입출력을 다뤘습니다. 이번 게시글부터 제어문을 다룰 거예요. Go언어의 제어문에는 조건문, 선택문, 반복문, 분기문이 있어요. 이번 게시글에서는 조건문을 다룹니다.Go언어에서는 조건문을 작성할 때 괄호를 생략하는 것을 허용하지 않고 괄호를 붙는 위치와 else가 있어야 하는 위치가 정해져 있습니다. C언어에서 개발자에 따라 다양한 코딩 습관에 따라 괄호가 붙는 위치나 else를 작성하는 위치가 다르게 작성할 수 있었던 것을 엄격하게 한정하고 있습니다.이처럼 엄격하게 정한 것은 개발자들의 코딩 습관에 따라 다르게 작성하여 가독할 때 서로 불편할 수 있는 여지를 미리 차단하는 효과를 줍니다. 먼저 if 조건문..

반응형