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

      个参数.

  • 相关阅读:
    装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
    装载: Matlab 提取矩阵 某一行 或者 某一列 的方法
    编码规范的作用
    转载:奇异值分解(SVD) --- 线性变换几何意义(下)
    转载:奇异值分解(SVD) --- 线性变换几何意义(上)
    转载:LBP代码详细注释
    转载:纹理分类(一)全局特征
    转载:LBP的初步理解
    转载:双线性插值
    Matlab位运算操作
  • 原文地址:https://www.cnblogs.com/hackpig/p/1669255.html
Copyright © 2011-2022 走看看