한글 초성 중성 종성을 프로그램이 직접 입력하는 방법 있을까요?


내가 미리 설정한 txt 파일이나 바로 문자열을 입력받아서 그걸 사람이 직접 입력하는것마냥 초성 중성 종성을 하나씩 입력하는 프로그램을 구현해보고싶습니다. 초성 중성 종성을 구별하는것까지는 인터넷에 자료가 많기에 문제없지만 그걸 직접 사람이 입력하는것처럼 구현하는 방법이 떠오르지않습니다.

제가 생각해본 방법은 '친구' 라는 단어가 있으면 문자열 배열에 'ㅊ' '치' '친' 이런식으로 일일이 저장하는 방식으로 생각을 해봤는데 비효율적인것같아 도움을 구해봅니다.

  • 2016년 04월 13일에 작성됨
    임베디드

조회수 296


1 답변


좋아요
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;
}

코드 출처

실행하면 이렇게 돼요. 이미지 이름이나 설명을 여기에 넣어주세요.


다른 글자를 원하시면 여기를 참고하셔서 원하는 코드를 매칭해서 사용하시면 될 것 같습니다.


  • 와우 감사합니다! 중간중간에 200ms정도 딜레이를 주니 정말 사람이 입력하는것처럼 보이네요!     Bellona   2016.4.13 16:24     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close