我需要实现一个代码来识别和忽略 Windows 中的一些键盘输入,为此我正在使用安装钩子的整个过程(我需要它来阻止Alt+Tab、Windows+Tab、Windows+D等)。鉴于只有当我的软件具有焦点时才会发生这种情况(将处于全屏模式),所以没有必要(我认为)实现系统范围的钩子(使用 DLL 等),所以我现在试图配置我的KeyboardProc
功能来做我需要的。
问题是我无法让它工作。我已经能够检测到一个特定的键,但不能让 Windows 忽略它。
这是我现在拥有的(在 Qt 中):
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if (code < 0)
return CallNextHookEx(NULL, code, wParam, lParam);
switch(wParam)
{
case VK_LWIN:
qDebug() << "VK_LWIN";
return NULL;
break;
case 0x41: //A
qDebug() << "A";
return false;
break;
}
return CallNextHookEx(NULL, code, wParam, lParam);
}
不管我在 return 中输入了什么,系统仍然会得到 key 输入。
那么我需要在那里放什么?