KeyboardProc挂接过程是应用程序定义或库定义的回调函数,系统在应用程序调用{??989796011}或PeekMessage函数时调用,并且有一个键盘消息(WM_KEYUP或WM_KEYDOWN)为处理。
LRESULT CALLBACK KeyboardProc(
INT 【码】, | //钩子代码 |
WPARAM 【wParam中】, | //虚拟键代码 |
LPARAM 【lParam的】 | //按键消息信息 |
); |
参数
【码】
指定挂钩过程用于确定如何处理消息的代码。此参数可以是以下值之一:
值 | 含义 |
HC_ACTION | 【wParam中】和【lParam的】参数包含有关击键消息的信息。 |
HC_NOREMOVE | 【wParam中】和【lParam的】参数包含有关击键消息的信息,并且键盘消息尚未从消息队列中删除。(一个名为PeekMessage函数的应用程序,指定PM_NOREMOVE标志。) |
如果【码】小于零,挂钩过程必须将消息传递给CallNextHookEx函数,无需进一步处理,并返回CallNextHookEx返回的值。
【wParam中】
指定生成击键消息的密钥的虚拟密钥代码。
【lParam的】
指定重复计数,扫描码,扩展密钥标志,上下文代码,先前的密钥状态标志和转换状态标志。此参数可以是以下值的组合:
值 | 描述 |
0-15 | 指定重复计数。该值是由于用户按住键而重复键击的次数。 |
16-23 | 指定扫描码。价值取决于原始设备制造商(OEM)。 |
24 | 指定密钥是否为扩展密钥,例如数字键盘上的功能键或键。如果键是扩展键,则值为1;否则为0。 |
25-28 | 保留。 |
29 | 指定上下文代码。如果ALT键关闭,值为1;否则为0。 |
30 | 指定以前的键状态。如果密钥在发送消息之前关闭,则值为1;如果键已经关闭,则为0。 |
31 | 指定转换状态。如果按下键,值为0,如果正在释放键,则该值为1。 |
有关【lParam的】参数的详细信息,请参阅击键信息标志.
返回值
为了防止Windows将消息传递到挂钩链或目标窗口过程的其余部分,返回值必须为非零值。为了让Windows将消息传递到目标窗口过程,绕过链中的其余过程,返回值必须为零。
备注
应用程序通过在SetWindowsHookEx函数的调用中指定WH_KEYBOARD钩类型和挂接过程的地址来安装挂钩过程。
KeyboardProc是应用程序定义或库定义的函数名称的占位符。
也可以看看
CallNextHookEx, GetMessage, PeekMessage, SetWindowsHookEx, WM_KEYUP, WM_KEYDOWN