zoukankan      html  css  js  c++  java
  • KeyboardProc

    键盘钩子处理函数:

      首先键盘钩子处理函数的函数名是可以自定义的 ,例如:MyKeyboardProc()

      函数原型:

      LRESULT CALLBACK KeyboardProc( int code,

      WPARAM wParam,

      LPARAM lParam

      );

    参数:

      code:

      根据这个数值决定怎样处理消息

      如果 code 小于0,则 必须让KeyboardProc()函数返回CallNextHookEx()

      code可以是下列值:

      HC_ACTION:wParam和lParam包含按键消息

      HC_NOREMOVE:wParam和lParam包含按键消息,并且按键消息不能从消息队列中移除(一个被PeekMessage函数调用的请求,指定

      PM_NOREMOVE标志)

      wParam:

      按键的虚拟键值消息,例如:VK_F1

      lParam:

      32位内存,内容描述包括:指定扩展键值,扫描码,上下文,重复次数。

      0-15位:

      描述:按下键盘次数。

      16-23位

      指定扫描码. 依赖于OEM

      24位

      当24位为1时候:表示按键是扩展键

      当24位为0时候:表示按键是是数字键盘按键

      25-28位

      保留位

      29位

      上下文键:为1时: ALT按下,其他情况为0

      30位

      如果是按键按下后发送的消息,30位为1,如果是按键抬起后30位为1;

      31位

      指定转变状态:31位为0时候,按键正在被按下,为1时候,按键正在被释放

    返回值:

      如果参数1:code小于0,则必须 返回CallNextHookEx(),也就是返回CallNextHookEx()的返回值

      如果参数1:code大于等于0,并且钩子处理函数没有处理消息,强烈建议您 返回CallNextHookEx()的返回值,否则当您安装WH_KEYBOARD钩子时

      ,钩子将不会得到通知,并返回错误结果。

      如果钩子处理的消息,您可以返回一个非0值,防止系统把消息传递给钩子链中的下一个钩子,或者把消息发送到目标窗口。

    备注:

      安装键盘钩子需要把WH_KEYBOARD作为SetWindowsHookEx()的第一个参数,并且把键盘钩子处理函数的函数指针作为SetWindowsHookEx()的第2

      个参数.

  • 相关阅读:
    day 29 什么是元类、class底层原理分析、通过元类来控制类的产生、通过元类控制类的调用过程、有了元类之后的属性查找
    day 28 断点调试,反射,内置方法
    day 26 绑定方法,非绑定方法,面向对象串讲
    day 25 类的组合、多太与多态性、封装
    day 24 类的继承
    函数进阶(1)
    函数基础
    文件修改及函数定义
    文件处理
    字典类型内置方法
  • 原文地址:https://www.cnblogs.com/hackpig/p/1669255.html
Copyright © 2011-2022 走看看