게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파일 탐색기 특정 이벤트 후킹 질문 드립니다.
게시물ID : programmer_6137짧은주소 복사하기
작성자 : 을파소
추천 : 0
조회수 : 1322회
댓글수 : 4개
등록시간 : 2014/10/23 02:32:58
옵션
  • 본인삭제금지
http://i.imgur.com/ZIdvndC.png
 
윈도우 탐색기 안에 파일목록 보여주는 곳에서 엔터키를 눌렀을 때 발생하는 이벤트를 후킹하고싶습니다.
그 파일들 보여주는 뷰에선 엔터키가 눌리면 사진에 보이는 대로 WM_USER + 202 메시지가 포스트 됩니다.
요 메세지를 후킹해서 파일리스트 뷰에 돌려주지 않으려고 하는데 후킹보터 제대로 안되네요. ㅠ
 
WH_CALLWNDPROC을 후킹하는 후킹 dll 코드는 다음과 같습니다.
 
LRESULT CALLBACK MsgProcedure(int nCode, WPARAM wParam, LPARAM lParam)
{
 if( lParam )
 {
  CWPSTRUCT *cwp = (CWPSTRUCT *)lParam;
  if( cwp->message == WM_USER + 202 )
  {
   cwp->message = WM_USER + 4444;
  }
  else
  {
  }
 }
 return ::CallNextHookEx( g_hHook , nCode , wParam , lParam );
}
 
g_hHook은 HHOOK 핸들입니다.
 
nCode를 직접 비교하기도 했었는데 Stack Overflow에서 비슷한 삽질을 한 사람 얘길 들어보니 필요한 정보는 lParam에 WEP구조체 포인터로 넘어온다더군요.. 그래서 저렇게 했는데.. 아무일도 일어나지 않습니다. ㅠ_ㅠ
 
질문 1. WM_USER 이상의 메시지를 후킹하려면 WH_CALLWNDPROC을 후킹하는 것이 맞나요?
질문 2. 원하는 메시지를 낚았을 때 코드처럼 하는 거 말고 좀더 우아한 메시지 삭제 방법이 없을까요?
아무말이라도 좋으니 조언좀.. orz
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호