Keyboard Hook API函数 参数说明

来源:https://www.cnblogs.com/grenet/archive/2010/12/07/1898840.html

 

1、Keyboard的HOOK函数分为两种,WH_KEYBOARD_LL和WH_KEYBOARD。我们一般用第一种,全局的键盘钩子,能拦截所有的键盘按键的消息。

 

  2、网上有人说,全局的钩子要放在单独的DLL中才能使用。我试了一下,不放在单独的DLL中,在XP+VS2005下,调试和运行都没有问题;在XP+VS2008下,调试会出错,不过编译后能运行;在WIN7+VS2010下,调试会出错,编译后能运行。这方面有研究的网友,望不吝赐教。

 

  3、WH_KEYBOARD_LL和WH_KEYBOARD,这是两种不同的钩子,虽然最后都是KeyboardHookProc函数处理拦截的消息,但是具体的每个参数的意义却完全不一样。

 

    WH_KEYBOARD钩子。KeyboardHookProc函数的各个参数意义如下:

 

    nCode    消息的类型,分HC_ACTION和HC_NOREMOVE

 

    wParam    按键的虚拟键码 

 

    lParam    按键的相关参数信息,包括重复时间、按键的状态(按下或弹起)等

 

 

 

    WH_KEYBOARD_LL钩子。KeyboardHookProc函数的各个参数意义如下:

 

     nCode    消息的类型,有HC_ACTION

 

    wParam    按键的状态(按下或弹起)WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、WM_SYSKEYUP

 

    lParam    指向KeyboardHookStruct结构的指针,该结构包含了按键的详细信息。     

 

    可以看出,这两种钩子的参数的定义是完全不一样的。而在之前的代码中:Dim MyKeyboardHookStruct As KeyboardHookStruct = DirectCast(Marshal.PtrToStructure(lParam, GetType(KeyboardHookStruct)), KeyboardHookStruct)就是将该指针指向的内容复制到指定的结构中。

 

 

 

名品推荐:尊禄 古芙 卡思乐

转载于:https://www.cnblogs.com/personnel/p/8324292.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值