TC官方合作论坛

标题: 【hook】键盘钩子。低层键盘钩子。 [打印本页]

作者: 剑仙十号    时间: 2018-3-22 21:30
标题: 【hook】键盘钩子。低层键盘钩子。
本帖最后由 剑仙十号 于 2018-3-22 23:50 编辑

【hook】键盘钩子。低层键盘钩子。

Acict :
谁能给讲一下键盘钩子使用WH_KEYBOARD和WH_KEYBOARD_LL的区别
如题,请了解的大侠给讲一下SetWindowsHookEx函数中钩子类型设置WH_KEYBOARD和WH_KEYBOARD_LL的时候,回调函数中wParam和lParam分别代表什么含义?

WH_KEYBOARD的lParam,直接是一个二进制0--31位。位左边是最高位,右边最低位。中间是中高位,中低位。

WH_KEYBOARD_LL的lParam,是一个KBDLLHOOKSTRUCT结构。
typedef struct tagKBDLLHOOKSTRUCT {
  DWORD     vkCode;
  DWORD     scanCode;
  DWORD     flags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT;
这个结构.flags(成员3),是一个二进制0--7位。

此外,KBDLLHOOKSTRUCT这个结构中scanCode(硬件扫描码)有什么用处?

=======================================================
actoferrin
05-21 09:43
等级
1楼
WH_KEYBOARD的钩子过程,在GetMessage或PeekMessage要取回一个键盘消息时调用,直接在被监视的线程中执行

WH_KEYBOARD_LL的钩子过程,在一个键盘消息被投递到一个线程的消息队列之前调用,这个是向安装钩子的线程发送消息,让安装钩子的线程执行钩子过程,WH_KEYBOARD_LL必须是全局钩子,而且不需要在dll中。


位。左边是最高位,右边最低位.png (1.08 KB, 下载次数: 3)

位。左边是最高位,右边最低位.png

作者: 剑仙十号    时间: 2018-3-22 21:31
本帖最后由 剑仙十号 于 2018-5-7 21:28 编辑

二楼,更新信息专用。
tc简单开发_爱好群:
143358382 (462/500)

tc简单开发_爱好群Ⅱ:
433286131 (215/500)

tc办公文本_爱好群:
612661895(60/500)

本群大神众多,新手众多。群文件内 资源海量。 希望新手 分享更多笔记,减少重复造轮子的时间。 好编程,齐学习,齐进步。
作者: q979033318    时间: 2018-3-24 19:13

作者: 爱上老公    时间: 2018-7-1 13:19
kankan
作者: gkuxiang    时间: 2018-10-5 10:41
dddddddddddddddddddddddddd




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1