Hook CTRL+ALT+TAB



我已经制作了WPF应用程序,并且能够连接一些Windows组合。 alt tab 已连接,当我的应用程序运行时,它无能为力(如预期)。问题是当我按 ctrl alt tab> tab 我获得的效果与 alt >选项卡。你们对如何连接这种组合有任何想法吗?

编辑:

我已经成功挂钩 alt tab 。我确实想挂钩 ctrl alt tab 。我尝试了这个项目示例以实现这一目标。

这是使挂钩的代码:

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> tab and ctrl 选项卡

private void HandleKeyDownEvent(object sender, KeyEventArgs e)
{
   if (e.Key == Key.Tab && (Keyboard.Modifiers & (ModifierKeys.Control | ModifierKeys.Shift)) == (ModifierKeys.Control | ModifierKeys.Shift))
   {
      MessageBox.Show("CTRL + SHIFT + TAB trapped");
   }
   if (e.Key == Key.Tab && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
   {
      MessageBox.Show("CTRL + TAB trapped");
   }
}

答案2

应该看起来像:

((lParam.flags & 33 == 33) && (lParam.flags & 22 == 22))
在此示例中,

32和22是任意的。您需要弄清楚实际是什么值ALT和CTRL。它们将是1、2、4 ... 16、32等

最新更新