|
권용구 님이 쓰신 글 :
: 안녕하세요?
:
: 로우레벨 키보드 훅킹을 C++ Builder를 가지고 구현하려 합니다.
:
: SetWindowsHookEx API를 이용하는데 훅킹 프로시저가 특정 폼 소스에 있어 해당 폼의 윈도우 핸들과 어플리케이션의 윈도우 핸들을 모두 넘겨보았는데 훅킹 핸들이 계속 널로 나오네요
:
: 경험해보신 분의 조언을 구합니다.
:
: 다음의 저의 예입니다.
: DWORD dwVersion = GetVersion();
: // Get major and minor version numbers of Windows
: DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
: if(dwVersion < 0x80000000) // Windows NT
: {
: hkeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)LowLevelKeyboardProc, Application->Handle, 0);
: }
: else // Windows 98
: {
: hkeyHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardHookProc, 0, 0);
: }
:
: //win98 only (ALT-TAB, ALT-F4, CTRL-ALT-DEL)
: SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, NULL);
: hmouseHook = SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseHookProc, Application->Handle, 0);
:
: ShowCursor(FALSE);
:
: 이상과 같이 해보니( 키보드 훅킹 및 마우스 훅킹 ) 모두 다 널이 리턴되고 훅이 걸리지가 않네요
:
: 이 소스는 TForm4에 위치하고 있구요. 해당 cpp파일의 글로벌 영역에 지정한 훅 프로시저가 위치하고 있습니다.
:
: 고수님들의 조언 부탁합니다.
Application->Handle 대신 글로벌 변수로 선언되어 있는 HInstance를 넣어주니 되네요
참조하시길..
|