windows 下最底层的模拟键盘

对于大多程序模拟按键使用下面的代码就可以胜任。但是换成游戏就不行了。
keybd_event(VK_LWIN, 0, 0 ,0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0);


键盘的原理是向操作系统的键盘驱动程序发送扫描码,下面的代码就是通过winio这个免费的lib实现直接向驱动程序发送数据来实现模拟按键。几乎试用于Windows下的所有程序。


有一点需要注意,对于扩展键需要额外发送命令。

   bool bResult;
   
   // Call InitializeWinIo to initialize the WinIo library.
   
   bResult = InitializeWinIo();//刚开始这个地方老是加载不成功,大家跑的时候如果不成功注意一下子这个地方
   
   if (bResult) {
       // Under Windows NT/2000/XP, after calling InitializeWinIo,
       // you can call _inp/_outp instead of using GetPortVal/SetPortVal
       
       UINT vkCode = MapVirtualKey(VK_LWIN, 0);
       
       KbcWait4Ibe();
       SetPortVal(0x64, 0xd2, 1); // 非扩展键不用写这条语句
       KbcWait4Ibe();
       SetPortVal(0x60, 0xe0, 1); // 非扩展键不用写这条语句


       KbcWait4Ibe();
       SetPortVal(0x64, 0xd2, 1);
       KbcWait4Ibe();
       SetPortVal(0x60, vkCode, 1);


       Sleep(5);
       
       KbcWait4Ibe();
       SetPortVal(0x64, 0xd2, 1); // 非扩展键不用写这条语句
       KbcWait4Ibe();
       SetPortVal(0x60, 0xe0, 1); // 非扩展键不用写这条语句


       KbcWait4Ibe();
       SetPortVal(0x64, 0xd2, 1);
       KbcWait4Ibe();
       SetPortVal(0x60, vkCode | 0x80, 1);


       ShutdownWinIo();
   }


刚开始自己加载WinIO驱动的时候老是不成功,给大家上传一个可以跑的,看看他的配置等内容。新版WinIO不大会用,大家可以试试这个老版的。

刚才上传居然上传正确但是没有找到,大家也可以自己搜索下载。有的是,主要是把那三个文件放好位置就可以了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值