C++ 令鼠标点击&&连点器的原理讲解

这篇具有很好参考价值的文章主要介绍了C++ 令鼠标点击&&连点器的原理讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

置顶:最新连点器更好了

源代码

可执行文件

如果编译乱码,敬请参阅Embarcadero Dev-C++ 中文字符的处理

此处敬告:以上连点器是偏游戏性的,本文的讲解也是偏游戏性的,请谨慎阅读。


Minecraft \texttt{Minecraft} Minecraft各大服务器中,你是否苦恼于手速太慢,打不过?

看到这篇文章,那就是你的福利。使用 C + + \rm C++ C++,编写一个独特的连点器,震惊所有人!


前置知识:

I . \rm{I.} I. Sleep()函数

要理解这个函数,其实也不难。Sleep(x)的作用是让程序休眠 x x x 毫秒,在那期间,程序什么都不会干。很简单。

I I . \rm{II.} II.mouse_event

顾名思义,mouse_event的作用是执行一次鼠标的事件。关于鼠标事件,有两个最常用的:

mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);

让鼠标左键点击一次;

mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);

让鼠标右键点击一次。

I I I . \rm{III.} III.GetAsyncKeyState(key)

key是键盘上面的一个键,可以是大写字母或数字。如果你点击了这个键,GetAsyncKeyState(key)就会返回true;否则返回false

I V . \rm{IV.} IV. 改变文字颜色


现在来说主体。

前置知识说完了,写出一份优秀的代码应该不成什么问题:

这是一份可以点击鼠标左键或右键的代码,还可以控制频率。

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int main(){
	SetColorAndBackground(11,9);
	printf("---------C++ Quick Click---------\n\n\n\n\n");
	SetColorAndBackground(4,0);
	char key;
	int CPS;
	string s="The notes you must know before use:\n1.Never let the CPS more than 100 or your computer will crash.\n2.If you use this for Minecraft service,don't let the CPS more than 13.Or you may be kicked out!";
	for(int i=0;i<s.size();++i){
		cout<<s[i];
		Sleep(75);
	}
	SetColorAndBackground(15,0);
	printf("\n");
	printf("Input the CPS you need:");
	scanf("%d",&CPS);
	LOOP:printf("\nDo you want to click left of right?\nIf you want to click left button,input 1;\nIf yoou want to click right button,input 2.\n");
	int op;
	scanf("%d",&op);
	if(op==1){
		printf("What key do you want to press to take left button's place?");
		cin>>key;
		if(key>='a'&&key<='z'){
			key-=32;
		}
		cout<<"Press "<<key<<" to start quick click";
		double time=CPS;
		double t=1000/time;
		while(true){
			if(GetAsyncKeyState(key)){
      	      	mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
      	      	Sleep(t);
      		}
		}
	}
	else if(op==2){
		printf("What key do you want to press to take right button's place?");
		cin>>key;
		if(key>='a'&&key<='z'){
			key-=32;
		}
		cout<<"Press "<<key<<" to start quick click";
		double time=CPS;
		double t=1000/time;
		while(true){
			if(GetAsyncKeyState(key)){
      	      	mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
      	      	Sleep(t);
      		}
		}
	}
	else{
		printf("Invalid input!\n");
		goto LOOP;
	}
	return 0;
}

这份代码的缺点是点击过于规律,容易被发现。

这是一份点击不规律的代码,还可以根据点击频率更改字体颜色:

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int main(){
	srand(time(0));
	char key='R';
	printf("Press R to start Quick Click\nNow CPS:");
	while(true){
		int t=rand()%100;
		if(t<=50){
			t+=50;
		}
		double tt=t;
		double cpsCCPS=1000.0/tt;
		
		if(GetAsyncKeyState(key)){
      	    mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
      	    Sleep(t);
      	    if(cpsCCPS<=12.00){
      	    	SetColorAndBackground(12,0);
			}
			else if(cpsCCPS<=14.00){
				SetColorAndBackground(14,0);
			}
			else if(cpsCCPS<=17.00){
				SetColorAndBackground(10,0);
			}
			else{
				SetColorAndBackground(9,0);
			}
      	    printf("%.5f",cpsCCPS);
      	    printf("\b\b\b\b\b\b\b\b");
      	    SetColorAndBackground(7,0);
      	}
	}
	return 0;
}

但是,它不仅只能点鼠标左键,还不能控制频率。(不过你想点右键的话把本代码中所有LEFT改成RIGHT就行了。)

这一份代码十分完美,点击既不规律,还可以控制频率,即我们开头看到的最新连点器。

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
void UpDaTe(){
	SetColorAndBackground(11,0);
	printf("Much better Irregular Quick Click[Version:4.0]\n(c)light_dream Corporation.\n\n");
	printf("Update on 2023/11/21\n");
	printf("Update:可以使用中文!\n\n");
	
}
void NoTiCe(){
	SetColorAndBackground(12,0);
	printf("使用须知:\n");
	printf("1.设定点击频率的时候,不要让频率超过120!否则你会闻到一股烤焦的味道!\n");
	printf("2.把这玩意用在Minecraft各大服务器的同志们,最好不要让点击频率超过14!否则可能被封!(本人亲身体会)\n");
	printf("3.如果您使用C++编译器编译本代码而乱码,敬请参阅:\n");
	printf("https://www.luogu.com.cn/blog/642173/The-treatment-of-treating-chinese-charactor-in-enbarcadero-dev-dpp!\n\n");
}
int main(){
	srand(time(0));
	char key;
	
	UpDaTe();
	NoTiCe();
	
	SetColorAndBackground(15,0);
	printf("输入您要的点击频率(一个整数,单位 次/秒):");
	int cps;
	scanf("%d",&cps);
	double Cps=cps;
	double sleep_time=1000/Cps;
	int bse=sleep_time;
	bse=bse-5;
	printf("输入您想要按下来启动连点的按键:");
	
	cin>>key;
	if(key>='a'&&key<='z'){
		key=key-32;
	}
	int op;
	printf("您想点左键还是右键?\n");
	SetColorAndBackground(10,0);
	printf("左键");
	SetColorAndBackground(15,0);
	printf("——输入1;\n");
	SetColorAndBackground(10,0);
	printf("右键");
	SetColorAndBackground(15,0);
	printf("——输入2.\n");
	scanf("%d",&op);
	printf("按%c开始连点\n现在的点击频率(单位 次/秒):",key);
	if(op==1){
		while(true){
			int t=rand()%10;
			t+=bse;
			double tt=t;
			double cpsCCPS=1000.0/tt;
		
			if(GetAsyncKeyState(key)){
    	  	    mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
      		    Sleep(t);
      	    	if(t>=bse+8){
	      	    	SetColorAndBackground(12,0);
				}
				else if(t>=bse+5){
					SetColorAndBackground(14,0);
				}
				else if(t>=bse+2){
					SetColorAndBackground(10,0);
				}
				else{
					SetColorAndBackground(9,0);
				}
      	    	printf("%.5f",cpsCCPS);
	      	    if(cpsCCPS<10){
     	 	    	printf("\b\b\b\b\b\b\b");
				}
				else if(cpsCCPS<100&&cpsCCPS>=10){
					printf("\b\b\b\b\b\b\b\b");
				}
				else{
					printf("\b\b\b\b\b\b\b\b\b");
				}
    	  	    SetColorAndBackground(7,0);
    	  	}
		}
	}
	else{
		
		while(true){
			int t=rand()%10;
			t+=bse;
			double tt=t;
			double cpsCCPS=1000.0/tt;
		
			if(GetAsyncKeyState(key)){
      		    mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
      		    Sleep(t);
      		    if(t>=bse+8){
	      	    	SetColorAndBackground(12,0);
				}
				else if(t>=bse+5){
					SetColorAndBackground(14,0);
				}
				else if(t>=bse+2){
					SetColorAndBackground(10,0);
				}
				else{
					SetColorAndBackground(9,0);
				}
    	  	    printf("%.5f",cpsCCPS);
     	 	    if(cpsCCPS<10){
     	 	    	printf("\b\b\b\b\b\b\b");
				}
				else if(cpsCCPS<100&&cpsCCPS>=10){
					printf("\b\b\b\b\b\b\b\b");
				}
				else{
					printf("\b\b\b\b\b\b\b\b\b");
				}
    	  	    SetColorAndBackground(7,0);
    	  	}
		}
	}
	return 0;
}

但是说句公道话,你真的不需要这样点击不规律的代码的话,选第一个就是了。文章来源地址https://www.toymoban.com/news/detail-777289.html


到了这里,关于C++ 令鼠标点击&&连点器的原理讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鼠标连点器(VB.net 全局键盘钩子+模拟鼠标 左键、右键)

    相信大家在玩游戏的时候会把 “攻击” 设置为鼠标左键,但是自己手速不够快,被人家秒了 废话不多说,立马进入主题: 一、新建一个vb.net工程(窗体应用程序) 大概是这样,timer1控制鼠标左键,timer2控制鼠标右键 二、新建一个模块(Module1.vb) 写入:注意,本模块由C

    2024年02月09日
    浏览(48)
  • C语言和win32绿色鼠标连点器,带代码(Windows)

    前言: 项目名称:绿色鼠标连点器。 系统平台:Windows。 使用api: Win32api。 使用语言:C。 编译器/IDE:gcc,Dev cpp,Visual Studio。 项目前言: 本项目也是自己开发(编写),不过这个项目是我之前(2021年)读完《C Primer Plus》之后写的第一个“项目”,而且发表过我之前的个人使用服

    2024年02月08日
    浏览(30)
  • c++实现连点器

    本期为大家收集了四个用c++实现连点器的程序(非常好用) 首先是@LiJoQiao提供的第一个版本,能实现连点鼠标左键 然后是@Zimse提供的第二个版本,在第一个版本的使用体验上有所升级 然后是@Coders提供的支持鼠标右键的版本  最后是@incra提供的支持按键的连点器 那今天就到

    2024年02月20日
    浏览(27)
  • Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。

    Matlab 也可以实现 按键J灵 的一些基本功能,比如: 连续按键、移动鼠标、鼠标点击、鼠标连点和输入字符! 其中, “连续按键” :指间隔一定的时间(如:0.1s)按一下某个按键(如:键盘上的A键)。这个在游戏挂机时,用做 卡键练技能 很有效,而且使用Matlab语言 能避免

    2024年02月09日
    浏览(43)
  • python︱使用python制作简易连点器

    当我们使用电脑的时候,不可避免的会碰到重复点击的任务。所以我们可以使用python制作一个简单的连点器进行使用,同时可以提升写代码的水平。 目录 第一步:前期准备 你需要一个可以编辑并运行python代码的程序 下载第三方库  第二步:整体思路 第三步:编写代码 1.导

    2024年02月14日
    浏览(31)
  • 用通俗易懂的方式讲解:一文讲透主流大语言模型的技术原理细节

    大家好,今天的文章分享三个方面的内容: 1、比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。 2、大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、

    2024年01月16日
    浏览(48)
  • C++ 鼠标点击的获取

    首先一个比较常用的宏定义如下: 使用KEY_DOWN(鼠标事件),可以方便获取很多鼠标的事件。 如果获取左键的点击,可以使用如下的代码:KEY_DOWN(MOUSE_MOVED) 如果获取滚轮的点击,可以使用如下的代码:KEY_DOWN(MOUSE_WHEELED) 如果获取右键的点击,可以使用如下的代码:KEY_DOWN(MOUSE

    2024年02月12日
    浏览(36)
  • C++实现【获取鼠标位置】以及控制鼠标【打开窗口并点击】

    获取鼠标位置的函数源代码来自:C++【认知系列】实时获取鼠标坐标_c++ 获取鼠标坐标_Zalamp的博客-CSDN博客 鼠标点击操作代码来自: C++控制鼠标移动到指定位置并且左键点击_c++鼠标移动_蜚语77的博客-CSDN博客 在特定程序中实现鼠标点击操作分为两步,第一步就是在任务栏点

    2024年02月12日
    浏览(34)
  • Mac电脑版鼠标连点工具 RapidClick for Mac

    RapidClick for Mac是一款方便实用的自动点击工具,可以帮助Mac用户在使用电脑时轻松、快速地进行鼠标操作。它可以模拟人类手指点击的动作,让您的鼠标点击变得更加快捷高效,大大提升了工作和游戏的效率。 RapidClick for Macv1.5.1激活版下载 RapidClick for Mac采用了简洁易懂的界

    2024年04月22日
    浏览(25)
  • 【UE5 C++】鼠标点击发射射线获取物体信息

    UE小白,有错误的地方请指出。 本文使用UE5,如在UE4中使用可能需调整某些API 1.获取镜头控制器,并开启点击事件 2.鼠标点击发射射线 在Tick中调用射线发射逻辑 UE中API看起来没有分鼠标抬起和鼠标按下API,如有大佬知道可以评论一下。 1.获取镜头控制器,并开启点击事件

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包