我编写了以下方法来防止所有键被按下:
private IntPtr HookHandler(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam)
{
if (nCode >= 0)
{
...
//Return a nonzero value to prevent the system from passing the message to the
//rest of the hook chain or the target window procedure.
return (IntPtr)1;
}
return NativeMethods.CallNextHookEx(_hookID, nCode, wParam, ref lParam);
}
但是,当上面的代码运行时,它允许使用我键盘的 calc 键或 email 键等键。
我调试,并且代码确实到达了该return (IntPtr)1;
行(并且它确实正确显示了正在按下的键),但是到那时,计算窗口(或其他)已经打开。即使我返回 1,也为时已晚。
我可以在这里做些不同的事情吗?