반응형

프로젝트 16

[미디 분석 프로그램 만들기] 4. 헤더 청크 분석하기

[미디 분석 프로그램 만들기] 4. 헤더 청크 분석하기 안녕하세요. 언제나 휴일, 언휴예요. 앞에서 미디 파일을 열어 청크 목록을 리스트 박스에 보여주는 부분까지 구현하였습니다.[미디 분석 프로그램 만들기] 1. 구현할 프로그램 소개[미디 분석 프로그램 만들기] 2. 프로젝트 생성 및 Layout[미디 분석 프로그램 만들기] 3. 미디 파일 열기 및 청크로 분할하기 이번에는 청크 중에 헤더 청크 부분을 분석하는 부분을 구현하기로 할게요. 이미 미디 파일 분석에 관한 게시글에서 헤더 청크에 관한 설명을 했었습니다.[미디 파일] 미디 파일 구조 분석 및 프로그래밍 2 - Head 청크, Mthd 헤더 청크의 구조 헤더 청크 부분을 헥사 코드와 각 항목을 출력한 예 앞에서 작성한 코드 중에 Chuck 클래스의..

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

9.2.9 EvalManager 클래스 접근성 평가 도우미는 사용자와 상호작용하는 폼과 평가에 필요한 개체를 관리하는 부분의 관계를 느슨하게 작성합니다. EvalManager 클래스는 폼의 명령을 받아 필요한 작업을 수행하거나 폼의 필요한 정보를 제공하는 역할을 하는 클래스입니다. EvalManager 개체는 접근성 평가 도우미에 하나만 있으면 되므로 단일체 패턴을 적용합시다. class EvalManager { static EvalManager singleton; public static EvalManager Manager { get { return singleton; } } static EvalManager() { singleton = new EvalManager(); } EvalManager() {..

9. 접근성 평가 도구 만들기 - 5. ImageCaptuer 클래스

9.2.3 ImageCapture 클래스 화면 요소를 캡쳐하는 메서드에서는 UI 요소가 있는 사각 영역을 인자로 받아 Bitmap 이미지를 만들어 반환할게요. 자동화 요소의 사각 영역 정보는 WindowsBase.dll에 정의하고 있는 Rect 형식을 사용하고 있습니다. 접근성 평가 도우미는 Windows Form 응용 프로그램 템플릿으로 만들 것이므로 Rectangle 형식을 인자로 받는 메서드도 제공할게요. using System.Drawing;using System;namespace 예제_9_접근성_평가_도우미{ public class ImageCapture { static Point point = new Point(0, 0); public static Bitmap CaptureFormRect(Re..

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] 평가 도우미 폼 클래스 ..

[C#] 7.4 프로젝트 구현 - 초기화

7.4 프로젝트 구현 초기화 [그림] 초기화 - 캠퍼스와 장소 생성 시퀀스 다이어그램 [그림] 초기화 - 학생 생성 시퀀스 다이어그램 이제는 시나리오와 시퀀스 다이어그램 등을 보면서 구체적으로 구현해 보기로 합시다. 시나리오를 보시면 캠퍼스 생활은 크게 초기화 부분과 사용자에 의한 동작으로 나눌 수가 있습니다. 이에 캠퍼스 생활에는 초기화하는 Init 메서드와 사용자에 의한 동작인 Run 메서드를 추가하고 프로그램 진입점에서는 캠퍼스 생활 단일체를 참조하여 Init과 Run 메서드를 호출하기로 합시다. class CampusLife { ... 중략 ... internal void Init() { throw new System.NotImplementedException(); } internal void R..

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - TV 시청

7.3 설계한 내용 프로젝트에 옮기기 TV 시청 [그림] TV 시청 시퀀스 다이어그램 초점이 기숙사에 온 상태에서 TV 시청을 선택했을 때에 대하여 시퀀스 다이어그램을 보며 필요한 부분을 추가해 봅시다. 여기에서는 기숙사에서 학생에게 TV를 시청하게 하는 WatchingTV 메서드만 추가하면 되겠네요.

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 초점 이동

7.3 설계한 내용 프로젝트에 옮기기 초점 이동 [그림] 초점 이동 시퀀스 다이어그램 이번에는 초점 이동에 대한 시퀀스 다이어그램을 보면서 멤버를 추가해 봅시다. 초점 이동에 대한 시퀀스 다이어그램에서는 각 장소에 따라 다르게 수행되는 부분은 약속하지 않고 공통적인 부분만 약속하였습니다. 초점 이동에 관한 시퀀스를 보시면 각 장소로 초점이 이동되고 나서 다시 캠퍼스 생활로 초점이 돌아오면 어떻게 학생들을 복귀시킬 것인지에 대한 시퀀스가 약속되어 있습니다. 먼저, 캠퍼스 생활에서 해당 장소에 학생의 수를 얻어오는 부분이 있고 특정 학생의 정보를 얻어오는 부분이 있습니다. 그리고 사용자에 의해 선택된 학생 번호에 해당하는 학생을 얻어오는 메서드가 약속되어 있네요. 그리고 캠퍼스 생활에서 캠퍼스 개체에게 복귀..

반응형