C++模拟键盘操作

发布时间 2023-11-14 08:54:29作者: 阿风小子
前言:
C++/C语言模拟键盘操作十分的黑科技啊,作者也是借鉴了 C/C++ 模拟键盘操作(一)_折竹丶的博客-CSDN博客_c++模拟键盘​​​​​​​​​​​​​​
 
 来做一个小小的全面总结,有兴趣可以去看原创
 
键盘操作:
在C++中有一个头文件:windows.h 我们可以尝试导入他:
 
#include<windows.h>
 这个头文件不管你是在DevC++,VS...都应该有的,在其中有一个这样的函数:
 
keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,ULONG_PTR dwExtraInfo);
就是这个keybd_enent函数,它的参数有4个第一个为按键的虚拟键值;第二个参数为扫描码,一般不用设置,用0代替就行;第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP";第四个参数一般也是置0即可。
 
来做个演示,假如我要模拟按下a键我们就可以:
 
keybd_event(65,0,0,0);
65是a的十进制值,这样我们就可以按下a键了
 
在前面加上一个Sleep(4000)等待4秒,选择一个地方可以试着输入以下
 
​​​​​​​具体虚拟键表自行查找
 
来做一个好玩的:
你是否在抖音上看见了一些用vbs做的刷屏器,我们在学完这个之后也能做一个C++版本的!
 
#include<windows.h>
#include<stdio.h>
void ctrl_v(int x = 86)//模拟ctrl+v
{
keybd_event(VK_CONTROL,0,0,0);//按下ctrl
keybd_event(x,0,0,0);//按下v
    keybd_event(x,0,KEYEVENTF_KEYUP,0);//弹起v
    keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);//弹起ctrl
}
int main()
{
int a;
scanf("%d",&a);//输入次数
Sleep(5000);//等待5秒(为了不一瞬间全部模拟)
for(int i = 0;i < a;i++)
{
ctrl_v();//ctrl+v
keybd_event(13,0,0,0);//按下Enter
Sleep(100);//等待0.1秒,你不想电脑卡炸吧
}
}