C++模拟键盘按键的实例

 更新时间:2018年07月24日 11:39:21   作者:everlasting__  
今天小编就为大家分享一篇C++模拟键盘按键的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

这个与模拟鼠标点击的函数差不多,直接上函数

keybd_event(VK_RETURN,0,0,0);
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);

这是模拟按下、抬起回车键

我直接上一个我曾经用它与一些函数写的一个刷屏程序

我用自己的小号试过,如果对方用的是手机,效果很显著

#include<iostream>
#include<windows.h>
 
using namespace std;
 
int b[11000],top=0;
char a[10];
bool f=true; 
 
int main(){
	int n,num;
	//初始化 
	a[0]='0';
	a[1]='1';
	a[2]='2';
	a[3]='3';
	a[4]='4';
	a[5]='5';
	a[6]='6';
	a[7]='7';
	a[8]='8';
	a[9]='9';
	
	while(1){
		cout<<"请输入刷屏次数:";
		cin>>n;
		cout<<"请输入间隔时间(单位:毫秒 1000毫秒=1秒):";
		cin>>num;
		if_return:
		cout<<"是否需要前导回车? 1.yes 2.no"<<endl;
		int k;
		cin>>k;
		if(k==1){
			f=true;
		}
		else if(k==2){
			f=false;
		}
		else{
			cout<<"输入错误!"<<endl;
			goto if_return;//比较乱的但是很方便的循环 
		}
		cout<<"请把光标移动到输入框"<<endl;
		Sleep(2000);
		mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
		mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟单击鼠标左键 
		cout<<"请等待三秒。。。"<<endl;
		Sleep(1000);
		cout<<"3"<<endl;
		Sleep(1000);
		cout<<"2"<<endl;
		Sleep(1000);
		cout<<"1"<<endl;
		for(int i=1; i<=n; i++){
			if(f==true){
				keybd_event(VK_RETURN,0,0,0);
				keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
			} 
			int x=i;
			while(x>0){
				b[top++]=x%10;
				x/=10;
			}
			top--;
			for(int j=top; j>=0; j--){
				keybd_event(a[b[j]],0,0,0);
				keybd_event(a[b[j]],0,KEYEVENTF_KEYUP,0);//模拟按下某个数字键 
			}
			top=0;
			keybd_event(VK_RETURN,0,0,0);
			keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);//模拟按下回车键 
			Sleep(num);
		}
		putchar(7);
		system("cls");//清屏 
	}
	
	
	return 0;
}

以上这篇C++模拟键盘按键的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++ 关于STL中sort()对struct排序的方法

    C++ 关于STL中sort()对struct排序的方法

    本篇文章介绍了,关于STL中sort()对struct排序的方法。需要的朋友参考下
    2013-04-04
  • CreateThread()与beginthread()的区别详细解析

    CreateThread()与beginthread()的区别详细解析

    很多开发者不清楚这两者之间的关系,他们随意选一个函数来用,发现也没有什么大问题,于是就忙于解决更为紧迫的任务去了。等到有一天忽然发现一个程序运行时间很长的时候会有细微的内存泄露,开发者绝对不会想到是因为这两套函数用混的结果
    2013-09-09
  • Qt 事件过滤器的具体实现

    Qt 事件过滤器的具体实现

    事件过滤器,见名之意,就是将事件过滤一遍,将不需要的事件都清除掉,剩下需要的事件进行操作。本文详细的介绍了Qt 事件过滤器的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 一篇文章让你彻底明白c++11增加的变参数模板

    一篇文章让你彻底明白c++11增加的变参数模板

    C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数,这篇文章主要给大家详细介绍了关于c++11增加的变参数模板的相关资料,需要的朋友可以参考下
    2021-08-08
  • C++空指针void*的使用方法

    C++空指针void*的使用方法

    C++空指针void是一种通用指针类型,可以指向任何类型的数据或对象。它不关心指向的数据或对象的类型,只关心指针本身的地址,在使用void指针时,需要将其转换为特定类型的指针,以便对其进行操作或访问其值,本文就给大家介绍一下C++空指针void的使用方法
    2023-06-06
  • VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法

    VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法

    vc6.0程序中,点击打开文件以及向工程中添加文件时,程序竟然崩溃自动退出了,不知什么原因,安装相同的vc程序,本本竟然出现此缘故
    2013-01-01
  • C语言解字符串逆序和单向链表逆序问题的代码示例

    C语言解字符串逆序和单向链表逆序问题的代码示例

    这篇文章主要介绍了C语言解字符串逆序和单向链表逆序问题的代码示例,求逆序也是考研和面试中的基础算法题类型,需要的朋友可以参考下
    2016-06-06
  • C++通用动态抽象工厂的实现详解

    C++通用动态抽象工厂的实现详解

    在面向对象的编程中,一般通过继承和虚函数来提供抽象能力,下面这篇文章主要给大家介绍了关于C++通用动态抽象工厂的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • C++笔记之std::future的用法小结

    C++笔记之std::future的用法小结

    std::future通常由某个Provider创建,与std::async一起使用,本文主要介绍了C++笔记之std::future的用法小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • C++实现双向链表

    C++实现双向链表

    这篇文章主要为大家详细介绍了C++实现双向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论