KBDLLHOOKSTRUCT 结构 (winuser.h)

包含有关低级别键盘输入事件的信息。

语法

typedef struct tagKBDLLHOOKSTRUCT {
  DWORD     vkCode;
  DWORD     scanCode;
  DWORD     flags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;

成员

vkCode

类型:DWORD

虚拟密钥代码。 代码必须是 1 到 254 范围内的值。

scanCode

类型:DWORD

密钥的硬件扫描代码。

flags

类型:DWORD

扩展键标志、事件注入标志、上下文代码和转换状态标志。 此成员指定如下。 应用程序可以使用以下值来测试击键标志。 测试LLKHF_INJECTED (位 4) 将告知是否已注入事件。 如果是,则测试LLKHF_LOWER_IL_INJECTED (位 1) 会告诉你事件是否是从以较低完整性级别运行的进程注入的。

含义
LLKHF_EXTENDED
>> (KF_EXTENDED 8)
测试扩展键标志。
LLKHF_LOWER_IL_INJECTED
0x00000002
从以较低完整性级别) 标志运行的进程测试事件注入 (。
LLKHF_INJECTED
0x00000010
从任何进程) 标志测试事件注入 (。
LLKHF_ALTDOWN
>> (KF_ALTDOWN 8)
测试上下文代码。
LLKHF_UP
>> (KF_UP 8)
测试转换状态标志。
 

下表描述了此值的布局。

Bits 说明
0 指定键是扩展键,例如功能键还是数字键盘上的键。 如果键是扩展键,则值为 1;否则为 0。
1 指定事件是否是从在较低完整性级别运行的进程中注入的。 如果出现这种情况,则值为 1;否则为 0。 请注意,每当设置位 1 时,也会设置位 4。
2-3 保留。
4 指定是否注入事件。 如果出现这种情况,则值为 1;否则为 0。 请注意,设置第 4 位时不一定设置位 1。
5 上下文代码。 如果按下 Alt 键,则值为 1;否则为 0。
6 保留。
7 转换状态。 如果按下了键,则值为 0;如果释放键,则值为 1。

time

类型:DWORD

此消息的时间戳,相当于 GetMessageTime 为此消息返回的时间戳。

dwExtraInfo

类型: ULONG_PTR

与消息关联的其他信息。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

请参阅

概念性

挂钩

LowLevelKeyboardProc

引用

SetWindowsHookEx