한글 초성 중성 종성을 프로그램이 직접 입력하는 방법 있을까요?
조회수 3588회
내가 미리 설정한 txt 파일이나 바로 문자열을 입력받아서 그걸 사람이 직접 입력하는것마냥 초성 중성 종성을 하나씩 입력하는 프로그램을 구현해보고싶습니다. 초성 중성 종성을 구별하는것까지는 인터넷에 자료가 많기에 문제없지만 그걸 직접 사람이 입력하는것처럼 구현하는 방법이 떠오르지않습니다.
제가 생각해본 방법은 '친구' 라는 단어가 있으면 문자열 배열에 'ㅊ' '치' '친' 이런식으로 일일이 저장하는 방식으로 생각을 해봤는데 비효율적인것같아 도움을 구해봅니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
윈도우에서라면 win32의 SendInput을 이용할 수 있습니다. 다음 코드는 실행된 다음 5초 이후에
gotlzhem
라는 키보드 입력을 차례로 발생시키는데요. 한글로는해시코드
에 해당합니다. 실행되자마자 메모장을 실행해놓고 기다리면해시코드
라고 입력 되네요.(한글로 선택된 상태여야 합니다.)비주얼 스튜디오에서 돌렸어요.
#include "stdafx.h" #include <windows.h> int main() { INPUT ip; // 5초 대기 Sleep(5000); ip.type = INPUT_KEYBOARD; ip.ki.wScan = 0; // hardware scan code for key ip.ki.time = 0; ip.ki.dwExtraInfo = 0; ip.ki.wVk = 0x47; // virtual-key code for the "ㅎ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x4F; // virtual-key code for the "ㅐ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x54; // virtual-key code for the "ㅅ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x4C; // virtual-key code for the "ㅣ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x5A; // virtual-key code for the "ㅋ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x48; // virtual-key code for the "ㅗ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x45; // virtual-key code for the "ㄷ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); ip.ki.wVk = 0x4D; // virtual-key code for the "ㅡ" key ip.ki.dwFlags = 0; // 0 for key press SendInput(1, &ip, sizeof(INPUT)); // Release the "A" key ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release SendInput(1, &ip, sizeof(INPUT)); return 0; }
실행하면 이렇게 돼요.
다른 글자를 원하시면 여기를 참고하셔서 원하는 코드를 매칭해서 사용하시면 될 것 같습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 -
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
-
댓글 입력