把原来的Return CallNextHook(....);
改成return 1;

解决方案 »

  1.   

    新钩子处理中,return (1)  表示消息不传到目标窗口;
                 return (0)  继续传到窗口  
    这是关键部分
      

  2.   

    LRESULT CALLBACK KeyboardProc(    int code,          // hook code
        WPARAM wParam, // virtual-key code
        LPARAM lParam  // keystroke-message information
       );
    这是这个回调函数中
      

  3.   

    你应该修改把回调函数中的callnexthook取消
      

  4.   

    想封锁键盘: 在大富翁(delphibbs)上有
      

  5.   

    你可能并没有将返回值 1 送给函数;
    我对DELPHI不太了解,是不是要有:HookProc:=1;   // 作为函数返回值
    return;
      

  6.   

    LRESULT CALLBACK MouseHook(int nCode,
                            WPARAM wParam,
                            LPARAM lParam)
    {
        if (nCode==HC_ACTION)
           {
              MOUSEHOOKSTRUCT *l=(MOUSEHOOKSTRUCT *)lParam;
              DispXY(l->pt.x,l->pt.y);    // 显示坐标
           }
       //  return(CallNextHookEx(hook,nCode,wParam,lParam));
       return(1);
    }
       修改后,系统所有程序得不到鼠标消息了,连菜单都不响应了,
    差点机器死了,幸而键盘还开着
      

  7.   

    全局钩子才能封锁所有所有键盘消息,
    但全局钩子必须做成.DLL(你好象未做成.DLL),
    由系统所有进程分别自动调用这个.DLL,
    实际成了若干个局部钩子,除非做成共享数据段方式;
    可能你未做成.DLL,只钩子你自已进程的消息,其它
    进程未钩住;
    前一段日子我们专门讨论过全局钩子的问题,虽走了
    弯路,但搞明白了;