gpt4 book ai didi

delphi - 为什么 Alt 键没有触发我的低级键盘 Hook ?

转载 作者:行者123 更新时间:2023-12-03 15:54:38 32 4
gpt4 key购买 nike

我正在尝试键盘 Hook ,似乎 Alt 键(以及其他命令键)没有被 Hook ,我不明白为什么?

下面是键盘 Hook ,其中包含一些调试代码,可打印出 vkCode、scanCode 和 lpChar 读数。

它基本上适用于所有键,但不适用于 AltCtrl

function LowLevelKeybdHookProc(nCode, wParam, lParam : integer) : integer; stdcall;
// possible wParam values: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP
var info : ^KeybdLLHookStruct absolute lParam;
lpChar : word;
kState : TKeyboardState;

begin
result := CallNextHookEx(kHook, nCode, wParam, lParam);
with info^ do
case WParam of
WM_KEYDOWN : begin
GetKeyboardState(kState);

Form1.Memo1.Text:=Form1.Memo1.Text+'vkCode: '+inttostr(vkCode)+
' scanCode: '+inttostr(scanCode)+
' lpChar: '+inttostr(lpChar)+;
end;
end;
end;

最佳答案

要检测 ALT 键按下,您需要响应 WM_SYSKEYDOWN

另请注意,您忽略了 nCode 的值。您必须非常仔细地阅读文档并按照其说明进行操作。

A code the hook procedure uses to determine how to process the message. If nCode is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx.

This parameter can be one of the following values.

HC_ACTION (0). The wParam and lParam parameters contain information about a keyboard message.

关于delphi - 为什么 Alt 键没有触发我的低级键盘 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119911/

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