放在外面
press((byte)Keys.NumPad7)就无效了
因为它会触发另一次KbHookProc,并且return 1而不再执行CallNextHookEx(hHook, nCode, wParam, lParam);
只有执行了CallNextHookEx(hHook, nCode, wParam, lParam);才会处理后续的钩子。

解决方案 »

  1.   

    return CallNextHookEx(hHook, nCode, wParam, lParam);这句话是关键,意思是当你处理外后,按键消息继续传递给系统,系统继续处理。就是正常的按键。如果return 1 放外面,这句话就执行不到了,那就是说你的所有按键消息系统都接收不到了。
      

  2.   

    放到外面就不会执行return CallNextHookEx(hHook, nCode, wParam, lParam);了
      

  3.   

    放在外面 不就直接return 1 了么 就不执行return CallNextHookEx(hHook, nCode, wParam, lParam);了
    。。打个断点 就明白。
      

  4.   

    那你说放里面为什么能打出7,不是也return 1了吗
      

  5.   

    那你说放里面为什么能打出7,不是也return 1了吗
      

  6.   

    那你说放里面为什么能打出7,不是也return 1了吗
      

  7.   

     press((byte)Keys.NumPad7); ...按q能执行到这一句,就是打出7.这个函数处理的。