vc winio驱动级模拟按键 简记

对于普通的模拟按键,利用keybd_event等系统函数即可,但是如果要在游戏里面模拟按键,因为部分游戏屏蔽了上述系统api,所以只能使用驱动级按键模拟。



#include <windows.h>
#include <stdio.h>
#include "winio.h"


void KbcWait4IBE()
{
DWORD dwRegVal=0;
do
{
GetPortVal(0x64,&dwRegVal,1);
}
while(dwRegVal & 0x2);
}

void KeyPress(DWORD KCode)
{
KbcWait4IBE();//Wait for KBC input buffer empty
SetPortVal(0x64,0xD2,1);//Send data back to the system command

KbcWait4IBE();//Wait for KBC input buffer empty
SetPortVal(0x60,MapVirtualKey(KCode,0),1);//Send the key down scancode

Sleep(10);

KbcWait4IBE();//Wait for KBC input buffer empty
SetPortVal(0x64,0xD2,1);//Send data back to the system command

KbcWait4IBE();//Wait for KBC input buffer empty
SetPortVal(0x60,(MapVirtualKey(KCode,0) | 0x80),1);//Send the key up scancode
}


void main()
{

bool bResult;


// Call InitializeWinIo to initialize the WinIo library.

bResult = InitializeWinIo();

if (bResult)
{
Sleep(5000);
printf("supposed key down");
KeyPress(73);
Sleep(5000);
// When you're done using WinIo, call ShutdownWinIo
ShutdownWinIo();

}
else
{
printf("Error during initialization of WinIo.\n");
exit(1);
}
}


调用KeyPress(73);会模拟按键i。这一小段代码的精妙之处就在于可以绕过绝大部分游戏的检测机制,可谓是外挂利器 :lol:
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值