全局键盘钩子发射两次

时间:2015-12-15 22:14:51

标签: c# windows hook

我有以下方法试图拦截全球媒体Dispose

ALT + Z

此方法几乎可以正常工作,但每次输入键命令时都会显示两次“ALT + Z”消息。

最初,我认为我正在捕获事件两次,一次是在按下private int KbHookProc(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { var hookStruct = (KbLLHookStruct)Marshal.PtrToStructure(lParam, typeof(KbLLHookStruct)); bool altDown = GetKeyState(VK_ALT) != 0; if (altDown) { if(hookStruct.vkCode == 0x5A) //alt + z { MessageBox.Show("ALT + Z"); } } } return CallNextHookEx(_hookHandle, nCode, wParam, lParam); } 时,一次是在Z被释放时。我尝试修改代码以检查Z变量,以查看事件是否是键上或下事件。

wParam

但是,在这种情况下,当我输入键命令时不会显示任何消息。

我在这里缺少什么?

0 个答案:

没有答案