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
[38566] [질문]키보드 후킹 프로그램(A를 넣으면 B라고 ..) 문제점좀 잡아주세여
이진수 [] 2262 읽음    2004-12-29 18:24
안녕하세여?
키보드 후킹을 하고 있는데 .. 잘안되네여
제가 하고 싶은건 특정 에디터를 띄워놓고 키 후킹을 한뒤
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라고 ..) 문제점좀 잡아주세여 이진수 2262 2004/12/29
38578     Re:[자답] keybd_event를 통해서 해결 했습니다. 냉무... 이진수 2206 2004/12/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.