keybd_event 함수의 첫번째 인자는 Virtual Key 값(unsigned char)이 들어가야됩니다.
프로그램이 내부적으로 인식하는 키 값이라고 생각하심 될것 같습니다. 링크 참조
http://cafe.naver.com/win32game/257
(링크한 code 값은 16진수임에 주의)
따라서 AnsiString을 가상키값으로 변환해서 넣어줘야됩니다.
aA 라는 문자열을 키보드 이벤트로 날리고 싶다면, 아래 처럼 하면 됩니다.
keybd_event(0x41, 0, 0, 0); //0x41 를 넣었지만, 10진수인 65를 넣어도 무방합니다.
keybd_event(0x41, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(0x41, 0, 0, 0);
keybd_event(0x41, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
그런데 a~z 나, 0~9는 가상키 값이 정의 되어 있지 않기 때문에 따로 정의를 해주시거나
문자열을 가상키값으로 변환해주는 함수를 만들어야 겠죠.
여기 저기 검색을 해보면 제공 되는게 있거나 누군가가 만든게 있을 것 같기도 합니다.
도움이 되셨기를
백꼴통 님이 쓰신 글 :
: 안녕하세요. 백꼴통 입니다. 나이먹고 프로그램 하려니 힘드네요
: 머리털 다 빠졌습니다.
:
: 키보드 이벤트 사용법좀 문의 합니다.
:
: AnsiString kk;
:
: kk = "abcde";
:
:
: keybd_event(kk.SubString(1,1), 0, 0, 0);
: keybd_event(kk.SubString(1,1) 0, KEYEVENTF_KEYUP, 0);
:
:
: ===============================
: kk 값 abcde 문자열을 키보드 이벤트 처리 하려고 합니다.
:
: 일단 a 부터 뿌려보려고 하는데요
:
: 저렇게 하면 안되더라구요.
:
: 어떻게 해야 하나요...