!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    extern "C" _declspec(dllexport) BOOL StartKeyboardHook()
    {
    m_hkbHook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc, hInstanceHandle, 0);
    return TRUE;
    }LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
    LRESULT lRetVal;
    lRetVal = CallNextHookEx(m_hkbHook, nCode, wParam, lParam);
    if((lParam&0x80000000) && (HC_ACTION==nCode))
    {
    char c = (char)wParam;
    CString strText;
    strText.Format(L"您按了\"%c\"键", c);
    AfxMessageBox(strText);
    }
    return lRetVal;
    }
      

  2.   

    有个函数:
    UnhookWindowsHookEx
      

  3.   

    比如消息处理函数是OwnerProc//调用CallNextHookEx(m_hkbHook, nCode, wParam, lParam);函数,会自动调用OwnerProc???
      

  4.   

    比如消息处理函数是OwnerProc//调用CallNextHookEx(m_hkbHook, nCode, wParam, lParam);函数,会自动调用OwnerProc???
      

  5.   

    有个函数:
    UnhookWindowsHookEx//不是释放钩子吗???比如消息处理函数是OwnerProc//调用CallNextHookEx(m_hkbHook, nCode, wParam, lParam);函数,会自动调用OwnerProc???
      

  6.   

    KeyboardProc,就是你说的OwnerProc。
      

  7.   

    CallNextHookEx 是调用 下个 钩子,即 钩子 链上 的 下一个,与你的 钩子 已 无关。
    不想调用 你的 钩子 就 释放 钩子。