低级键盘钩子。判断 模拟按键/真实按键。
.
做wh_keyboard_ll 的钩子,
键盘钩子的回调函数,参数3需要写成结构体。
//
结构体有5个成员。
Public Structure KeyboardHookStruct
Dim vkCode As Integer
Dim ScanCode As Integer
Dim Flags As Integer
Dim Time As Integer
Dim DwExtraInfo As Integer
End Structure
其中各个参数意义如下:
VkCode:按键的虚拟键码。键盘上的每个按键对应一个虚拟键码
.
ScanCode:硬件的扫描码
.
成员3:
Flags:按键消息的详细信息。是一些标识位的组合
Time:时间。
DwExtraInfo:扩展到按键消息的信息
.
成员3Flags 的数值,是一个八位的二进制,各个位的信息如下:
0位:扩展键的标识位。1表示该键是扩展键;0表示不是。
1位~3位:保留位,一般是0。
4位:标识消息的类型,1表示该消息是模拟的;0表示该消息是真实的。
4 3210
.
5位:Alt键的标识位。1表示Alt是按下的;0表示Alt键没有被按下。
54 3210
.
6位:保留位,一般是0
7位:按键的状态标识位。1表示按键是弹起的,0表示按键是按下的。
7654 3210
.
在Flags参数中,第四位是能区分消息的类别。4 3210
用keybd_event函数模拟按键消息时,这位是1。
真实按键的时候,这位是0。
.
做wh_keyboard_ll 的钩子,
键盘钩子的回调函数,参数3需要写成结构体。
//
结构体有5个成员。
Public Structure KeyboardHookStruct
Dim vkCode As Integer
Dim ScanCode As Integer
Dim Flags As Integer
Dim Time As Integer
Dim DwExtraInfo As Integer
End Structure
其中各个参数意义如下:
VkCode:按键的虚拟键码。键盘上的每个按键对应一个虚拟键码
.
ScanCode:硬件的扫描码
.
成员3:
Flags:按键消息的详细信息。是一些标识位的组合
Time:时间。
DwExtraInfo:扩展到按键消息的信息
.
成员3Flags 的数值,是一个八位的二进制,各个位的信息如下:
0位:扩展键的标识位。1表示该键是扩展键;0表示不是。
1位~3位:保留位,一般是0。
4位:标识消息的类型,1表示该消息是模拟的;0表示该消息是真实的。
4 3210
.
5位:Alt键的标识位。1表示Alt是按下的;0表示Alt键没有被按下。
54 3210
.
6位:保留位,一般是0
7位:按键的状态标识位。1表示按键是弹起的,0表示按键是按下的。
7654 3210
.
在Flags参数中,第四位是能区分消息的类别。4 3210
用keybd_event函数模拟按键消息时,这位是1。
真实按键的时候,这位是0。