C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[16149] Re:Re:시스템 키보드 후킹
^^ [] 1576 읽음    2002-03-09 16:45
제가 너무 무성의하게 올렸는 것 같네요.
HookData는 제가 정의한 구조체로 원하시는 형태로 정의하시면 됩니다.

typedef struct
{
    HWND    hWnd;           // hook master main form handle
    HHOOK   lock_KBD;       // lock keyboard hook handle
    HHOOK   mnt_CRT;        // monitoring screen hook handle

} HookData;


^^ 님이 쓰신 글 :
:
: 음, 내용을 보니, F12키가 눌러진 횟수를 체크하고 있네요.
: 시스템전체 갈고리이니, 당연히 dll로 만드신 것 같구요.
: 우선 dll과 app의 자료 공유가 문제인 것 같은데, 대부분 이럴때는 일반 file io를 사용하거나, 이것이 조금 추잡해 보인다면, 메모리상에서 자료 공유를 할 수 있도록 하는 Memory Mapped File IO(MMF) 방식을 많이 사용합니다.
: 제가 예제를 하나 첨부할께여.
: 첨부한 것은 MMF의 예입니다.
: 이와 같이 하는 이유는 아시겠지만, 32bit 체제에서의 dll은 다른 프로그램에서 실행되고 있으면 다른 메모리를 가지고 작업하기 때문입니다. 그래서 자료공유를 해야 할 경우는 공통적으로 접근할 수 있는 방법이 필요한데, 가장 손쉬운 방법이 파일접근법이져. MMF는 가상메모리 기법이 나오면서 부가적으로 나온 기법이라고 해야 할까요.
: 일단 이렇게 해서 dll과 app에서 자료를 읽을 때는 GetData를 쓸때는 SetData를 쓰면 될 것 같습니다.
:
: MMF에 대해서 더 궁금하시다면, 델파이코리아에 강좌가 올라와 있으니 참고하시기를....
:
:
:
: //---------------------------------------------------
: void GetData (HookData *hd)
: {
:     HANDLE      hMMF;
:     LPVOID      pData;
:
:     hMMF = CreateFileMapping ((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0,
:                                      sizeof (HookData), "MMF_SC_Hook");
:     if ( GetLastError () == 0 )
:     { // 오류발생시 제시도
:         hMMF = CreateFileMapping ((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0,
:                                          sizeof (HookData), "MMF_SC_Hook");
:     }
:     try
:     {
:         pData = MapViewOfFile (hMMF, FILE_MAP_WRITE, 0, 0, 0);
:         if ( pData != NULL )
:         {
:             hd = (HookData*)pData;
:             UnmapViewOfFile (pData);
:         }
:     }
:     __finally
:     {
:         CloseHandle (hMMF);
:     }
: }
: //---------------------------------------------------
: void SetData (HookData *hd)
: {
:     HANDLE      hMMF;
:     LPVOID      pData;
:
:     hMMF = CreateFileMapping ((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0,
:                                      sizeof (HookData), "MMF_SC_Hook");
:     try
:     {
:         pData = MapViewOfFile (hMMF, FILE_MAP_WRITE, 0, 0, 0);
:         if ( pData != NULL )
:         {
:             (HookData*)pData = hd;
:             UnmapViewOfFile (pData);
:         }
:     }
:     __finally
:     {
:         CloseHandle (hMMF);
:     }
: }
: //---------------------------------------------------

+ -

관련 글 리스트
16147 시스템 키보드 후킹 이용한 1343 2002/03/09
16148     Re:시스템 키보드 후킹 ^^ 1896 2002/03/09
16154         감사합니다.. 복많이 받으세요.. (냉무) 이용한 904 2002/03/09
16149         Re:Re:시스템 키보드 후킹 ^^ 1576 2002/03/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.