【发布时间】:2020-01-19 06:42:13
【问题描述】:
使用 SetWindowsHookEx 捕捉键盘事件
SetWindowsHookEx(WH_KEYBOARD_LL, HookCallback, NULL, 0)
使用此代码尝试防止电脑锁定
LRESULT __stdcall HookCallback(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN)
{
kbdStruct = *((KBDLLHOOKSTRUCT*)lParam);
// Winkey or l
if (kbdStruct.vkCode == VK_LWIN || kbdStruct.vkCode == 0x4C)
return 1;
}
}
return CallNextHookEx(_hook, nCode, wParam, lParam);
}
看起来“l”按钮被取消了:例如,不能在记事本中使用“l”。但是电脑仍然锁定是按Winkey + l。
【问题讨论】:
-
像 CTRL+ALT+DEL 一样,我 99% 确定这是一个操作系统级别的挂钩,出于安全目的控制
WIN+L。 -
有什么解决办法吗?
-
你真正想做什么?
-
我有一个带有 F1-F12 按钮的蓝牙键盘,映射了音量、媒体播放器等特定功能。我需要 F1-F12 有标准功能。我创建了切换键盘代码的实用程序。除了 F12 外一切正常 - 键盘发送 WinKey+L。我无法改变这一点。