钩子函数返回的时候用:
return ::CallNextHookEx(HHOOK, code, wParam, lParam);
不要直接返回TRUE or FALSE。
如果还不行请贴代码瞧瞧

解决方案 »

  1.   

    LRESULT CALLBACK KeyboardProc(int code,
      WPARAM wParam,
      LPARAM lParam
      )
    {
    switch (wParam)
    {
    case VK_RETURN:
    MessageBox(NULL, TEXT("钩子成功!"), TEXT("钩子"), MB_OK);
    break;
    default:
    break;
    }
    return CallNextHookEx(NULL, code, wParam, lParam);
    }
      

  2.   

    我用的是全局钩子再DLL里面的
      

  3.   

    而且我每次在别的窗口按一次ENTER键,它都弹出2个MESSAGEBOX这又是怎么回事
      

  4.   

    指定CallNextHookEx(NULL,   code,   wParam,   lParam)要将消息传递的窗口,第一个参数是SetWindowsHookEx()
    的返回值.........
    hhk 
    Handle to the current hook. An application receives this handle as a result of a previous call to the SetWindowsHookEx function. 
      

  5.   

    顶一个 HWND m_hwnd 
    捕获消息时 将消息来源信息记录下来处理完后 用::SendMessage 就原消息传回去;麻烦一点 不过实用
      

  6.   

    MSDN上面说hhk Ignored.也就是忽略的啊。也就是没用的啊,给NULL不就行了么