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
[38578] Re:[자답] keybd_event를 통해서 해결 했습니다. 냉무...
이진수 [] 2206 읽음    2004-12-30 18:59
이진수 님이 쓰신 글 :
: 안녕하세여?
: 키보드 후킹을 하고 있는데 .. 잘안되네여
: 제가 하고 싶은건 특정 에디터를 띄워놓고 키 후킹을 한뒤
: A라고 키를 치면 B라고 에디터에 입력이 되는 것을 하고 싶습니다.
: 일단 키보드 후킹은 했는데..
: 입력이 안되네여..
: 도움 부탁 합니다.
: 아래는 후킹 소스 입니다.
:
: -----------------------------------------------------------------------------------------------
: LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam){
:          char msg[0xff];
:     memset(msg,0,sizeof(msg));
:     dc=GetDC(0);
:        /*  switch(code){
:
:             case HC_ACTION :
:                          KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
:                         if ( pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN ) return 1;
:                         if ( wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN )
:             {
:                 g_PressedKey = pkbhs->vkCode;
:
:             }
:                         break;
:
:         }
:         */
:         // Retrieve O/S Version information
:        /*    OSVERSIONINFO osvi;
:     osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
:     GetVersionEx( &osvi );
:         HWND hWndServer = ::FindWindow(NULL, "AcroEdit");
:         UINT UWM_KEYINPUT = ::RegisterWindowMessage(UWM_KEYINPUT_MSG);
:         if ( osvi.dwPlatformId == VER_PLATFORM_WIN32_NT ) // WinNT or Windows 2000
:     {
:           TextOut(dc,1,1,"hi",2);
:         } */
:       
:          if (code == HC_ACTION){
:                 KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
:                 HWND hWndServer = ::FindWindow(NULL, "AcroEdit");
:                 //MSG     *msMessage=(MSG *)lParam;
:                 //if ( pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN ) return 1;
:                 if ( wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN )
:         {
:
:
:
:                          //if (msMessage->wParam==122){
:                           g_PressedKey = pkbhs->vkCode;
:
:                            if (g_PressedKey==65){
:                                 //                g_PressedKey=65;
:                                  sprintf(msg,"%d,%d",hWndServer,pkbhs->vkCode);
:                                 TextOut(dc,1,50,msg,strlen(msg));
:                                 SendMessage(hWndServer,UWM_KEYINPUT,(WPARAM)g_PressedKey, 0);
:                                 //PostMessage(hWndServer, UWM_KEYINPUT, (WPARAM)g_PressedKey, 0);
:                                //PostMessage(hWndServer,WM_KEYDOWN, (WPARAM)VK_SPACE, 0);
:
:
:                            }
:                            else return  CallNextHookEx(HookHandle,code,wParam,lParam);
:
:                                 //SendMessage(msMessage->hwnd,WM_KEYDOWN, 0, 0);
:                                 //SendMessage(msMessage->hwnd,WM_CHAR, '1', 0);
:                                 //SendMessage(msMessage->hwnd,WM_KEYUP, 0, 0);
:                                 //return  CallNextHookEx(HookHandle,code,wParam,lParam);
:
:
:                         // PostMessage(hWndServer, WM_KEYDOWN, (WPARAM)g_PressedKey, 0);
:
:                        //::PostMessage(hWndServer, UWM_KEYINPUT, (WPARAM)g_PressedKey, 0);
:                         // SendMessage(hWndServer,WM_KEYDOWN, 0, 0);
:                         // SendMessage(hWndServer,WM_CHAR, '1', 0);
:                         //SendMessage(hWndServer,WM_KEYUP, 0, 0);
:                        // return SendMessage(hWndServer,WM_CHAR, '1', 0);
:
:
:                 }
:
:
:         }
:
:
:
:         //return  CallNextHookEx(HookHandle,code,wParam,lParam);
:           return 1;
:
: }

+ -

관련 글 리스트
38566 [질문]키보드 후킹 프로그램(A를 넣으면 B라고 ..) 문제점좀 잡아주세여 이진수 2263 2004/12/29
38578     Re:[자답] keybd_event를 통해서 해결 했습니다. 냉무... 이진수 2206 2004/12/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.