C语言和win32绿色鼠标连点器,带代码(Windows)

前言:
项目名称:绿色鼠标连点器。
系统平台:Windows。
使用api: Win32api。
使用语言:C。
编译器/IDE:gcc,Dev cpp,Visual Studio。

项目前言:

本项目也是自己开发(编写),不过这个项目是我之前(2021年)读完《C Primer Plus》之后写的第一个“项目”,而且发表过我之前的个人使用服务器和开源框架的博客。
本来打算用于MC(Minecraft)挂机连锁开采…,之后想以为基础做的更多功能,虽然有思路,也写了一点,但遇到了一个困难:“按键/快捷键”绑定问题,我不想一条条if else if ……或者switch表因为键盘上键太多,而且key值也占空间,所以去学算法。
但因为现实生活遇到一些事,所以又鸽了但因为这便学了单片机(Arduino,STC89系[51.52.516]),写了几个项目,但只开源了两个成品,之前应该有人看过上个小车应该是半成品的,蓝牙+超声波+AD芯片传感的,但是我给改成一个成品(也就是现在那个文章),还有如果大家需要我也可以找时间重新发布(只是可能,其实改源文件和头文件,在改一下主函数调用就可以了,有思路和现成超声波程序就很简单)。
还有至于Arduino电子锁那项目我是目前打算不再写了,因为空间不够,也不打算优化了,等回来有可能写在STC89系列、32单片机。
经上所以代码质量啧,反正我现在在看去是“惨不忍睹”,但是为了“水”,呃,其实是为了流量,所以开源吧。

代码未完成(只是鼠标模拟器,绑定快捷键,存档),以后放弃该项目,但是回来可能会发布GUI+多线程的鼠标连点器。
细节请见->“项目前言”。
GitHub打算不上传了,毕竟一个放弃的半成品项目。
代码都有注释可放心看

程序和文件图片:
启动界面:
注:
1)以下界面也可以可以删除、更改。
2)鼠标模拟器代码未完成,只可以选择1鼠标连点器
启动界面
进入界面:
鼠标连点器界面

键选择:
键选择
功能界面:
功能界面
选择进入界面(只拿一个说明):
选择进入界面
所有设置都可以在这个界面看。
使用界面:
使用界面
注意可以挂后台、可以按Esc 键紧急退出、可以锁定鼠标位置!

文件和VS截图:
文件
证明文件

vs,c代码

代码:

GitHub打算不上传了,毕竟一个放弃的半成品项目,而且代码太长了还是是多文件,所以请下载吧:
百度网盘:点我亦可以
链接:https://pan.baidu.com/s/16rC-U0MTWcjHZrYxzS0Oig?pwd=AS12
提取码:AS12

使用说明在这个下
不过可以先看我之前以C标库文件和Win32 “封装”写的基础函数文件:

/***** 由@星空长夜i 编写以下自定义内容*******Simple package(简单封装)**Custom package(自定义包)********************************/

//请在使用前在源文件添加头文件依赖:
/*    头文件     来源     说明                              需要程度
*   windows.h   (win32) 微软提供的api等                       必须
*   time.h      (C)     标C提供的类型和时间函数等             可选
*   stdio.h     (C)     标C提供的类型和标输入输出函数等       可选(弃用)
* 
* 函数调用: (方便复制)
* 
*	可直接调用:
* 
*	air_COLOR(7);   
*
*--->文字颜色函数color
*--->参数讲解:  7:白色
*--->更多请使用适配应用!
* 
*	      cursor_XY(0,0);    
*
*--->设置光标位置X,Y
*--->参数讲解:
*--->屏幕的可以看到的左上角为x=0,y=0||如果用于窗口那么窗口左上角为x=0,y=0 注: 横(—)是X,竖(|)是Y
* 
*	COLOR_XY(7,0,0);          
*
*--->文字颜色+设置光标位置
*--->参数讲解:
*--->这个就不用讲了吧,air_COLOR(7)+cursor_XY(0,0)
*	
* 
*	可选内容(需要去开启):
*		printf("%d",current_time());            
*			获取时间
* 
*		可选(弃用):
*	set_Color(7);
*--->参数讲解:	文本颜色+背景色
* 
*	explain_COLOR(void);
*	打印颜色表;
*/

#ifndef Many_Simplepackage            //防止重复包含
#define Many_Simplepackage 	

//定义常量
#define TIME 0            //可选内容,非0启用   需要time.h 
#define OptionaL 0        //可选(弃用)内容,非0启用


//声明函数(提供函数原型。)
void air_COLOR(int co);                   //文字颜色函数
void cursor_XY(int x, int y);             //设置光标位置-行-Row==x,|列-column==y
void COLOR_XY(int c, int x, int y);          //文字颜色+设置光标位置

//文字颜色函数
void air_COLOR(int co)
{
    
    
	
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), co);
	/*
	*	STD_INPUT_HANDLE
	*	标准输入的句柄
	*	STD_OUTPUT_HANDLE
	*	标准输出的句柄
	*	STD_ERROR_HANDLE
	*	标准错误的句柄
	*/
}

//设置光标位置
void cursor_XY(int xs, int ys)
{
    
    
    COORD c;
    c.X = xs;
    c.Y = ys;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

//文字颜色函数+设置光标位置
void COLOR_XY(int c, int x, int y)
{
    
    
	//还有一种, 函数原型:BOOL SetCursorPOS(int X,int Y);
	COORD z;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
	z.X = x;
	z.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), z);
}

#endif

#ifndef Many_TIME
#if TIME
#define Many_TIME

//定义常量
#define Ctime_MAX  20   //时间数组
//定义结构
struct tm* info;
//定义变量
unsigned char timess = 0, second = 10;
char C_time[Ctime_MAX];       //时间
time_t rawtime;
/************************定义函数********************/
char* current_time(void);            //获取时间


char* current_time(void)
{
    
    
	time(&rawtime);
	info = localtime(&rawtime);
	strftime(C_time, Ctime_MAX, "%Y-%m-%d %H:%M", info);
	return C_time;
}

#endif
#endif


/*可选(弃用)函数——根据个人需要启用*/
#ifndef Many_Simplepackages   //防止重复包含
#if  OptionaL                
#define Many_Simplepackages 
/*根据个人需要启用在17行修改 #define OptionaL 0        //可选(弃用)内容,非0启用
 *并且要包含头文件依赖:stdio.h 与windows.h  */	
void set_Color(unsigned short textColor, unsigned short backColor);
void explain_COLOR(void);

enum Color      //枚举
{
    
    
	black, blue, green, lakeBlue, red, purple, yellow, white, gray,
	lightBlue, lightGreen, lightSimpleGreen, lightRed, lightPurple, lightYellow, brightWhite
};

void set_Color(unsigned short textColor, unsigned short backColor) {
    
    

	char command[9] = "color 07";		//默认颜色	
	command[6] = '0' + backColor;		//将backColor变量改为字符型 
	command[7] = '0' + textColor;		//将textColor变量改为字符型 
	system(command);				//调用系统函数 
}

void explain_COLOR(void)
{
    
    
	//非常笨的办法-当初学的时候写的 现在懒得改了,想改可以改改。
	printf("_______________________________\n");
	printf("|颜色	对应值||颜色	对应值|\n"
		"|黑色	   0  ||灰色       8  |\n"
		"|蓝色     1  ||淡蓝色	   9  |\n"
		"|绿色     2  || 淡绿色	  10  |\n"
		"|浅绿色   3  |淡浅绿色	  11  |\n"
		"|红色     4  ||淡红色	  12  |\n"
		"|紫色     5  ||淡紫色	  13  |\n"
		"|黄色     6  ||淡黄色	  14  |\n"
		"|白色     7  ||亮白色	  15  |\n");
	printf("------------------------------\n");
}

#endif
#endif

使用说明:

注文件内有我之前写的:
连点器-帮助文件.doc和一模一样的连点器-帮助文件.txt

–>空格键(Space)快捷模式(游戏) 适用于游戏, 是双/单击; 参数: 每秒执行的次数Max 频率50ms, 按下和松中间1 ms -->M键快捷模式(我的世界)
专门开发用于我的世界挖矿,是长按不抬起; 参数: 每秒执行的次数Max 频率50ms, 按下和松中间Max ms

–>回车键(Enter)自定义模式 顾名思义自定义参数 -->(,<)键快捷模式(极限) 在极限的状态下 参数: 每秒执行的次数Max 频率0ms, 按下和松中间0 ms
–>(.>)键快捷模式(快速)

参数: 每秒执行的次数Max 频率10ms, 按下和松中间1ms 功能简单介绍:
支持:

  1. 模拟单击-按下+抬起 条件:  鼠标按下,松开值之间的时间不能太大, 其他的值没有影响。  讲解:如果鼠标按下,松开值之间的时间太大会导致按下后很久时间才松开(抬起) 影响:  每秒执行的次数和频率
     每秒执行的次数影响着每秒执行的次数(废话)  频率影响着在几次下运行的速度,如果值太小将会变成双击
     如果不知道什么些参数什么意思请->点我<-就可以转跳。

  2. 模拟双击-按下+抬起*2: 条件:  仅限 与单击一样。  讲解:与单击一样。 影响:  每秒执行的次数和频率  每秒执行的次数影响着每秒执行的次数(废话)  频率影响着在几次下运行的速度,如果值太大将会变成单击
     如果不知道什么些参数什么意思请->点我<-就可以转跳。

  3. 模拟不抬起-只按下 条件:  仅限鼠标按松之间,时间为MAX值  讲解:因为如果鼠标按松之间,时间为MAX值时根据程序条件将会除了暂停和退出之外鼠标不抬起 影响:  每秒执行的次数和频率
     每秒执行的次数影响着每秒执行的次数(废话)  频率影响着在几次下运行的速度,如果值太大将会变成单击
     如果不知道什么些参数什么意思请->点我<-就可以转跳。

  4. 自定义是所有值都自定义,所以可以实现没写到的

详细参数值讲解

参数 范围 讲解/单位 每秒执行的次数 0- MAX 每秒执行的次数 单位:1秒1下
频率 0-MAX 在几次下运行的速度,值为0会直接继续(取决于编译和你电脑了)注意为0容易卡死 单位:ms 毫秒
鼠标按松之间,时间 0-MAX 鼠标按下松开的速度,值为0会直接继续(取决于编译和你电脑了)注意为0容易卡死 单位:ms 毫秒
> 注意:所有MAX值为2147483647 除非有前提说明。

猜你喜欢

转载自blog.csdn.net/asd2387/article/details/128116899
今日推荐