【发布时间】:2012-08-15 11:00:15
【问题描述】:
我写了如下方法,防止所有键被按下:
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 键或电子邮件键等键。
我进行了调试,代码确实到达了return (IntPtr)1; 行(并且它确实正确显示了正在按下的键),但是到那时,计算窗口(或其他)已经打开了。即使我返回 1,也为时已晚。
我可以在这里做些不同的事情吗?
【问题讨论】:
标签: c# .net winapi keyboard-hook