Wpf 钩子CTRL+;ALT+;桌棋类游戏
我已经制作了一个WPF应用程序,并且能够钩住一些windows组合。ALT+TAB被钩住了,当我的应用程序运行时,它什么也不做(如预期的那样)。问题是,当我按下CTRL+ALT+TAB时,我会得到与ALT+TAB相同的效果。 你们知道怎么把这种组合挂起来吗 编辑: 我已经成功地钩住了ALT+TAB。我确实想挂起CTRL+ALT+TAB。我试过让这一切发生 下面是生成钩子的代码:Wpf 钩子CTRL+;ALT+;桌棋类游戏,wpf,keyboard-hook,Wpf,Keyboard Hook,我已经制作了一个WPF应用程序,并且能够钩住一些windows组合。ALT+TAB被钩住了,当我的应用程序运行时,它什么也不做(如预期的那样)。问题是,当我按下CTRL+ALT+TAB时,我会得到与ALT+TAB相同的效果。 你们知道怎么把这种组合挂起来吗 编辑: 我已经成功地钩住了ALT+TAB。我确实想挂起CTRL+ALT+TAB。我试过让这一切发生 下面是生成钩子的代码: private static IntPtr KeyboardHookHandler(int nCode, IntPtr
private static IntPtr KeyboardHookHandler(int nCode, IntPtr wParam,
ref KBHookStruct lParam){
if (nCode == 0)
{
if (((lParam.vkCode == 0x09) && (lParam.flags == 0x20)) || // Alt+Tab
((lParam.vkCode == 0x1B) && (lParam.flags == 0x20)) || // Alt+Esc
((lParam.vkCode == 0x1B) && (lParam.flags == 0x00)) || // Ctrl+Esc
((lParam.vkCode == 0x5B) && (lParam.flags == 0x01)) || // Left Windows Key
((lParam.vkCode == 0x5C) && (lParam.flags == 0x01)) || // Right Windows Key
((lParam.vkCode == 0x73) && (lParam.flags == 0x20)) || // Alt+F4
((lParam.vkCode == 0x20) && (lParam.flags == 0x20))) // Alt+Space
{
return new IntPtr(1);
}
}
return CallNextHookEx(hookPtr, nCode, wParam, ref lParam);}
答案1 您可以尝试下面的方法,使用CTRL+SHIFT+TAB和CTRL+TAB 答案2 应该看起来像:
((lParam.flags & 33 == 33) && (lParam.flags & 22 == 22))
在本例中,32和22是任意的。您需要弄清楚ALT和CTRL实际上是什么值。他们将是1,2,4。。。16、32等,以便将它们合并为一个值。对不起,我不明白您的问题。您想挂接“Alt+Tab”还是“Ctrl+Alt+Tab”?你试过什么了吗?谢谢你的回复。我已经试过了,但它对CTRL+ALT组合不起作用\你试过答案2了吗?是的,我试过了,没有运气。我认为这可能是因为它是一个“特殊”的组合,就像Ctrl+Alt+Del一样,这就是它不起作用的原因。
((lParam.flags & 33 == 33) && (lParam.flags & 22 == 22))