sendinput函数实现改键

以前写过用钩子拦截按键消息实现改键,最近在论坛上看到下面这种方法,在此总结一下与大家分享。欢迎指正。 

//模拟按键,把自定义消息添加到消息队列中。
该方法是先借用低级键盘钩子判断按键消息。
1,sendinput函数的介绍:
UINT SendInput(UINT nInputs,//在消息队列中添加消息的个数【Number of structures in the pInputs array】
              LPINPUT pInputs, //指向INPUT结构体的一个指针
              int cbSize  //给结构体的大小sizeof(INPUT)
);
2,INPUT结构体的介绍
union是联合体,在联合体中,系统只为他分配一块联合体中最大的那个变量的空间,一旦其中一个被赋值其他的变量就不能再被赋值。
typedef struct tagINPUT {
  DWORD type; //INPUT_NOUSE(鼠标事件) INPUT_KEYBOARD(键盘事件)  INPUT_HARDWARE(其他硬件事件)
  union {   MOUSEINPUT mi; //包含鼠标事件的结构体
            KEYBDINPUT ki;//键盘事件的结构体
            HARDWAREINPUT hi;//硬件事件的结构体
           };
  }INPUT, *PINPUT;
3,三种不同的消息对应的结构体
(1)KEYBOARDINPUT
typedef struct tagKEYBDINPUT {

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值