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
[21324] [질문] 키보드이벤트를 발생못하게... -__-a
하느리 [handebug] 939 읽음    2002-09-09 12:25
현재 개발하고 있는 것에서 키보드이벤트를 발생하지 못하도록 처리하고 있습니다. 일반적으로 사용하는 후킹방법을 이용하여 하고 있습니다. 시스템 전체에 후킹을 걸기 위해, dll을 하나 만들고, 거기다가 키보드이벤트에 관한 루틴을 포함시켰습니다. 그리고, 프로그램에서 이를 로드하여 처리하고 있습니다. [아래 소스 참조, 테스트하실 수 있게 테스트용 프로그램도 올립니다.]

현재 일반적인 경우의 키보드 이벤트는 모두 발생하지 않는데, 시스템 관련한 키보드이벤트는 발생을 합니다. 이를 어떻게 하여야 할지 난감하여 질문란을 두드립니다. 즉, ctrl+alt+del, alt+tab, 윈도우즈시작메뉴키, 팝업메뉴(마우스오른쪽버튼을 눌렀을 때 나타나는 메뉴) 호출키 등은 이 루틴을 통하여 막을 수가 없더군요.

다른 방법을 아시는 분은 좀 알려 주십시오.
감사합니다.


dll 소스 ----------------------
#ifdef  __STATIC_DLL__
LRESULT CALLBACK KBDLockProc (int nCode, WPARAM wParam, LPARAM lParam)
#else
extern "C" __export __stdcall LRESULT KBDLockProc (int nCode, WPARAM wParam, LPARAM lParam)
#endif
{
    if ( gHookKBDLock.h_lock_KBD == 0 ) Read_MMF_KBDLock (&gHookKBDLock);
    if ( nCode >= 0 )
        return  (long) true; // 다른 프로세스가 이 메세지 사용 못하도록 함

    return  CallNextHookEx (gHookKBDLock.h_lock_KBD, nCode, wParam, lParam);
}


program 소스 ------------------
bool __fastcall TForm1::SetKBDLock(void)
{
    LRESULT (__stdcall *KBDLockProc) (int nCode, WPARAM wParam, LPARAM lParam);
    if ( ! mh_DLLInstance ) mh_DLLInstance = LoadLibrary ("hookEvent.dll");
    if ( mh_DLLInstance )
    {
        KBDLockProc = (LRESULT (__stdcall*)(int, WPARAM, LPARAM)) GetProcAddress (mh_DLLInstance, "KBDLockProc");
        if ( KBDLockProc )
        {
            gHookKBDLock.h_lock_KBD = SetWindowsHookEx (WH_KEYBOARD, (HOOKPROC) KBDLockProc, mh_DLLInstance, 0);
            Write_MMF_KBDLock (&gHookKBDLock);
            mHookJobNum++;

            return true;
        }
    }

    return false;
}

+ -

관련 글 리스트
21324 [질문] 키보드이벤트를 발생못하게... -__-a 하느리 939 2002/09/09
30557     Re:[질문] 키보드이벤트를 발생못하게... -__-a 김재구 818 2002/09/09
30556     Re:[질문] 키보드이벤트를 발생못하게... -__-a 김재구 803 2002/09/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.