|
화상(가상)키보드는 후킹을 반드시 해야 합니다.
후킹모듈은 반드시 DLL에 넣놔야 해요. 그렇지 않으면 전역 후킹이 제대로 안됨.
또한 중요한것은 한글IME 조합에 대해서는 키보드 후킹에서 처리해줘야 하며,,
마우스를 클릭하여도 포커스를 받지 않으려면,
LBUTTONDOWN시
현재 활성화되어있는 윈도우 핸들을 저장하고,
GetForegroundWindow, GetFocus
LBUTTONUP시 그 핸들로
SetForegroundWindow
SetFocus
SetActivateWindow 함수를 써야 합니다.
한글 IME조합에 대해서는 다소 복잡할 수 있으나
윈도우는 기본적으로 마우스를 클릭하여도, 키보드 이벤트가 일어납니다.
마우스클릭시 키보드에서 입력받아 그냥 return TRUE 해 주시면
됩니다.
이를 하지 않으면 한글입력시,
"한"을 칠 경우,, "ㅎㅏㄴ"과 같이 메모장등에 잘못 써지는것을 볼 수 있습니다.
추가,
keybd_event(VkKeyScan('q'), 0, 0, 0);
keybd_event(VkKeyScan('q'), 0, KEYEVENTF_KEYUP, 0);
와 같이 해도 되지만, 가끔 아래아 한글에서 안먹히는 경우가 있습니다.
101키를 다 해보시면 압니다.
MapVirtualKey를 사용하여 2번째 인자를 넣어주세요..
3번째 인자는 KEYEVENTF_EXTENDEDKEY | 0와
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP
를 넣어주시구요~
- 나그네 -
|