반응형

가상 키보드 만들기 6

[소프트웨어 접근성] 가상 키보드 만들기 8 - 가상 키보드 만들기

[소프트웨어 접근성] 가상 키보드 만들기 8 - 가상 키보드 만들기 윈도우즈 폼 응용 프로젝트를 추가한 후에 키보드 이벤트와 마우스 이벤트 처리를 위한 WrapNative 클래스를 추가하세요. 이 부분은 앞에서 설명한 부분이라 별도의 설명은 생략할게요. 아래의 소스 코드를 참고하세요.

[소프트웨어 접근성] 가상 키보드 만들기 7 - 가상 키보드 타겟 데모

[소프트웨어 접근성] 가상 키보드 만들기 7 - 가상 키보드 타겟 데모 테스트를 위한 타겟 데모를 먼저 만들기로 합시다. 네 개의 텍스트 상자와 하나의 리스트 상자를 추가하세요. 리스트 상자의 컨트롤 이름은 lbox_message로 정할게요.[그림] 컨트롤 배치 네 개의 텍스트 상자의 KeyDown 이벤트 핸들러를 같은 이름의 핸들러로 추가하세요. 여기에서는 이벤트 핸들러 이름을 textBox_KeyDown으로 정할게요. private void textBox_KeyDown(object sender, KeyEventArgs e) { sender 를 TextBox 형식 개체로 참조 연산합니다. TextBox tbox = sender as TextBox; 이벤트 인자의 KeyData 속성으로 메시지 문자열을 ..

[소프트웨어 접근성] 가상 키보드 만들기 5 -한글 문자 생성기

[소프트웨어 접근성] 가상 키보드 만들기 5 -한글 문자 생성기 먼저 한글 문자 생성기를 정적 클래스 KoreanCharMaker로 정의합시다. public static class KoreanCharMaker { 먼저 한글 문자가 시작하는 BASE CODE(0xAC00), 초성 시작점(0x1100), 중성 시작점(0x1161)을 상수로 선언합니다. const int BASE_CODE = 0xAC00; const int BASE_INIT = 0x1100; const int BASE_VOWEL = 0x1161; 한글과 관련있는 자판 문자를 초성, 중성, 종성과 쉬프트 키를 정적 문자열로 선언합니다. //한글 코드 값 = 초성*중성개수*종성 개수+중성 *종성개수+종성+BASE 코드(0xAC00) const i..

[소프트웨어 접근성] 가상 키보드 만들기 4 -한글 오토마타 만들기 개요

[소프트웨어 접근성] 가상 키보드 만들기4-한글 오토마타 만들기 개요 가상 키보드에서는 한글을 입력할 수 있게 한글 오토마타가 필요합니다. 이번에는 한글 오토마타 라이브러리를 만들어 봅시다. 한글을 입력할 대상 컨트롤에 포커스를 유지하는 방식으로 보조기술을 만들면 키보드 이벤트로 처리할 수 있지만 한글을 입력시키기 위해 포커스를 잠시 변경하면 원하는 한글 입력을 할 수 없습니다. 예를 들어 'ㅁ', 'ㅏ' 순으로 키를 누르면 '마'로 바뀌길 원하지만 'ㅁ ㅏ'로 바뀝니다. 여기에서는 이러한 문제를 해결하기 위해 한글 오토마타를 만들어 볼게요. 완성형 한글 코드는 초성과 중성과 중성의 각 코드값을 다음의 식으로 환산합니다. 한글 코드 값 = 초성*중성개수*종성 개수+중성 *종성개수+종성+BASE 코드(0x..

[소프트웨어 접근성] 가상 키보드 만들기 3 - 마우스 이벤트 예광탄

[소프트웨어 접근성] 가상 키보드 만들기 3 - 마우스 이벤트 예광탄 이번에는 가상 키보드에 필요한 것은 아니지만 가상 마우스를 만든다고 하면 프로그램 방식으로 마우스 이벤트를 발생하는 방법을 알아야 합니다. 프로그램 방식으로 키보드 이벤트를 발생하는 부분과 비슷하므로 같이 다루기로 할게요. [그림] 마우스 이벤트 예광탄 실행화면 및 컨트롤 배치 Windows 32 API에서는 프로그램 방식으로 마우스 이벤트를 발생시키는 mouse_event 함수를 제공하고 있습니다. 다음은 프로그램 방식으로 키보드 이벤트를 발생시키는 mouse_event 함수 원형입니다. WINUSERAPI VOID WINAPI mouse_event( __in DWORD dwFlags, __in DWORD dx, __in DWORD ..

[소프트웨어 접근성] 가상 키보드 만들기 2 - 키보드 이벤트 예광탄

[소프트웨어 접근성] 가상 키보드 만들기 2 - 키보드 이벤트 예광탄 이번에는 가상 키보드를 제작할 때 필요한 키보드 이벤트를 발생하는 예광탄을 만듭시다. [그림] 실행화면 및 컨트롤 배치 윈도우즈 응용 프로그램 프로젝트를 생성한 후에 컨트롤 배치를 먼저 하세요. using System; using System.Runtime.InteropServices; namespace 키보드_이벤트_예광탄 { [Flags] public enum KeyFlag{ KE_DOWN = 0, KE__EXTENDEDKEY = 1, KE_UP = 2 } public static class WrapNative { [DllImport("User32.dll")] static extern void keybd_event(byte vk, ..

반응형