gpt4 book ai didi

c# - 使用低级键盘钩子(Hook)抑制任务切换键(winkey、alt-tab、alt-esc、ctrl-esc)

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:22 27 4
gpt4 key购买 nike

我正在尝试抑制任务切换键(例如 winkeyalt+tabalt +escctrl+esc 等)通过使用低级键盘钩子(Hook)。

我正在使用以下 LowLevelKeyboardProc 回调:

IntPtr HookCallback(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam) 
{
if (nCode >= 0)
{
bool suppress = false;

// Suppress left and right windows keys.
if (lParam.Key == VK_LWIN || lParam.Key == VK_RWIN)
suppress = true;

// Suppress alt-tab.
if (lParam.Key == VK_TAB && HasAltModifier(lParam.Flags))
suppress = true;

// Suppress alt-escape.
if (lParam.Key == VK_ESCAPE && HasAltModifier(lParam.Flags))
suppress = true;

// Suppress ctrl-escape.
/* How do I hook CTRL-ESCAPE ? */

// Suppress keys by returning 1.
if (suppress)
return new IntPtr(1);
}
return CallNextHookEx(HookID, nCode, wParam, ref lParam);
}

bool HasAltModifier(int flags)
{
return (flags & 0x20) == 0x20;
}

但是,我不知道如何抑制 CTRL+ESC 组合。有什么建议么?谢谢。

最佳答案

这应该可以解决问题:

bool ControlDown = (GetKeyState(VK_CONTROL) & 0x8000) != 0;
if (lParam.Key == VK_ESCAPE && ControlDown)
suppress = true;

关于c# - 使用低级键盘钩子(Hook)抑制任务切换键(winkey、alt-tab、alt-esc、ctrl-esc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com