특정윈도운의 헨들을 알고 그 윈도우의 키보드를 훅킹을 하려구 합니다.
물론 전체훅하는 내용은 아주 만지만
특정 윈도우의 메세지를 훅하는 내용은
API책을 봐도 설명만 되어 있을 뿐 정확한 예제가 없습니다.
다 아시겠지만 아래의 함수로 후킹을 합니다.
SetWindowsHookEx(WH_KEYBOARD, KeyBoardHookCallBack,
GetModuleHandleFromInstance, ThreadID);
3번째 인자는 훅프로시져가 들어 있는 dll의 인스턴트 헨들
4번째 인자는 훅킹을 할 윈도우의 쓰래드 아이디라고 생각되는데
이 함수의 3번째와 4번째 인자의 값이 좀 모호해서 질문을 올립니다.
특정 윈도우를 훅할때 이렇게 하는 것이 맞는지 알고 싶습니다.
내가 생각한 것이 맞다면
3번째 인자는 GetModuleFileName(hInstance, s, sizeof(s)-1) 이렇게 구했구요
4번째 인자는 ThreadID := GetWindowThreadProcessId(TaskHandle, @ProcessID);
이렇게 해서 구하는 것이 맞는지 알고 싶습니다.
어째든 잘 안되는 군요... 4번째 인자에 윈도우 ID를 넣을지 프로세스 ID를 넣을지 윈헨들을
넣을지 잘 모르겠습니다.
훅해보신분께 도움을 청합니다.
32bit에 델3에서 개발하고 있습니다.
/꿈의 언덕에서 좋/은/생/각/
|