连点器

介绍

顾名思义,可以连续点的机器。

当然,连续可快可慢;机器意味着不许要人工点击;可以是生活中的机器,也可以是电脑中的程序。

现在,连点器网上一搜一大堆,什么鼠标连点精灵鼠大侠……不仅有电脑的,还有安卓系统的。

但是,用这些软件,我很不放心。说不定就有什么木马病毒呢……

再说,我们这些coder都不喜欢那些总是误报的杀软,测试程序时等了十几秒结果弹出个“危险木马程序”的警告,所以(我)在code时一般是不开360等杀软的。

那怎么办呢?

既然我们是coder,那么这种程序应该用我们的双手亲手写下吧!(当然你要Ctrl+C&Ctrl+V我也没办法……)

Code0

 #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<windows.h>
using namespace std;
#define IL inline
#define RE register POINT curpos;//鼠标的位置
float i;//点击速度
int j;//点击次数
int a=,b=;//贮存鼠标坐标
bool fast,inf; IL void selectrate()//选择点击速度、次数
{
while()
{
system("cls");
printf("由于windows的最小计时单位为毫秒,故输入大于1000的数字将会被转化为1000,输入0会…会失去等待时间!\n请输入点击频率 n 次/秒\n(0.01< n <=1000)\n");
cin>>i;
if(i==) fast=;
i=(int)(/i);
printf("请输入点击次数 x 次\n( 0 暗示无限次)\n");
cin>>j;
if(j==) inf=;
break;
}
} IL void click(int i,int j)
{
while()
{
if(GetAsyncKeyState(VK_SPACE))
{
RE int k=j;
if(inf) k=-;
printf("运行\n");
while(k--)//点击次数
{
if(a&&b)SetCursorPos(a,b);
mouse_event(MOUSEEVENTF_LEFTDOWN,curpos.x,curpos.y,,);
mouse_event(MOUSEEVENTF_LEFTUP,curpos.x,curpos.y,,);
if(!fast) Sleep(i);
//锁定目标位置
if(GetAsyncKeyState(VK_CONTROL))
{
if(a&&b)
{
a=;b=;
printf("解除锁定\n");
}
else
{
GetCursorPos(&curpos);
a=(int)curpos.x;
b=(int)curpos.y;
printf("位置锁定 %d %d\n",a,b);
}
}
if(GetAsyncKeyState(VK_SPACE))
{
printf("暂停\n");Sleep();
//接收到信号才继续执行
while()
{
if(GetAsyncKeyState(VK_SPACE))
{
printf("继续\n");
break;
}
Sleep();
if(GetAsyncKeyState(VK_ESCAPE))
{
printf("重新开始\n");
return;
}
}
}
if(GetAsyncKeyState(VK_ESCAPE))
{
printf("重新开始\n");
return;
}
}
printf("按空格键再来一次\n");
while()
{
if(GetAsyncKeyState(VK_SPACE)) break;
Sleep();
if(GetAsyncKeyState(VK_ESCAPE))
{
printf("重新开始\n");
return;
}
}
}
Sleep();
}
} int main()
{
system("mode con cols=25 lines=10");
system("title made by S.O.A.F");
SetWindowPos(GetForegroundWindow(), HWND_TOPMOST, , , , , SWP_NOMOVE | SWP_NOSIZE);
printf("自动窗口置顶\n空格键开始,暂停,继续\nESC键重新开始\n4.点击的位置为鼠标的位置。\nCTRL键锁定,解锁位置\n"); while()
{
fast=inf=;
system("pause");
selectrate();
system("cls");
printf("频率%.2f次/秒\n次数%d次\n空格键 开始 暂停 继续\nESC键 重新开始\nCTRL键 锁定 解锁位置\n",/i,j);
click(i,j);
}
return ;
}

这里有许多功能。

窗口置顶

锁定位置

中途暂停

中途启动

……

(但是效率不是特别高)

在我经过一番测试后,觉得许多功能都是没必要的,就把他们删了。

 #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<windows.h>
using namespace std;
#define IL inline
#define RE register
POINT curpos;//鼠标的位置
int main()
{
float i;//点击速度
bool fast,flag;
system("mode con cols=25 lines=10");
system("title Code by S.O.A.F");
SetWindowPos(GetForegroundWindow(), HWND_TOPMOST, , , , , SWP_NOMOVE | SWP_NOSIZE);
printf("自动窗口置顶\n空格键开始,暂停,继续\nESC键重新开始\n4.点击的位置为鼠标的位置。\nCTRL键锁定,解锁位置\n"); while()
{
fast=flag=;
system("pause");
system("cls"); printf("由于windows的最小计时单位为毫秒,故输入大于1000的数字将会被转化为1000,输入0会…会失去等待时间!\n请输入点击频率 n 次/秒\n(0.01< n <=1000)\n");
cin>>i;
if(i==) fast=;
else i=(int)(/i);
system("cls"); printf("频率%.2fHz\n空格键 开始\nESC键 重新开始\n",/i); while()//等待空格触发开始
{
if(GetAsyncKeyState(VK_SPACE))
{
printf("开始运行\n");
while()
{
if(!fast) Sleep(i);
mouse_event(MOUSEEVENTF_LEFTDOWN,curpos.x,curpos.y,,);
mouse_event(MOUSEEVENTF_LEFTUP,curpos.x,curpos.y,,);
if(GetAsyncKeyState(VK_ESCAPE))
{
printf("重新开始\n");
flag=;
break;
}
}
}
if(GetAsyncKeyState(VK_ESCAPE))
{
printf("end\n");
flag=;
}
if(flag) break;
} }
return ;
}

只有短短的六十行!

还把函数都涵盖到主函数里面了。

反正,用来给钉钉直播刷赞应该够了吧……

测试程序

那要是不刷赞无聊的时候,怎么来测试连点器的性能呢?

我又翻了翻mouse的一些函数,找到了mouse_event();

 #include<windows.h>
#include<cstdio>
#include<iostream>
using namespace std; int main()
{
HANDLE ConsoleWin;
INPUT_RECORD eventMsg;
DWORD Pointer ;
long long a=;
ConsoleWin = GetStdHandle(STD_INPUT_HANDLE);//Get the console window while(){
ReadConsoleInput(ConsoleWin, &eventMsg, , &Pointer);//Read input msg
if (eventMsg.EventType == MOUSE_EVENT && eventMsg.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) printf("%lld\n",++a);
}
return ;
}

运行后,点一下控制台就会记录+1。十分方便快捷!

(记得关闭“快速编辑模式”!)

ZIP

这里把所有东西的压缩包放在这了……

最新文章

  1. hdu 1503 Advanced Fruits
  2. 获取sql server数据库表结构
  3. WINFrom Excal 数据导入数据库
  4. CSS常用布局整理
  5. Mvc学习笔记(3)
  6. MyEclipse8.6安装svn(非link方式)
  7. Windows 取得至高无上的权限
  8. photoshop移动工具
  9. ORB_SLAM2之Pangolin的安装与问题处理
  10. eclipse构建maven+scala+spark工程
  11. Rwordseg使用
  12. .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)
  13. 酒店web认证802.11x+ROS共享NAT上网
  14. MySQL建库建表
  15. 条件GAN论文简单解读
  16. PCB器件重叠报错
  17. OAF在打开的新页面中添加按钮,功能是关闭当前页面
  18. 使用dig命令解析域名
  19. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(一)-- 起步
  20. 使用jsonp跨域发送请求

热门文章

  1. for in 和 for i 十月 javascript 第一弹 记录
  2. 创建dynamics CRM client-side (十四) - Web API
  3. jmeter使用—响应断言
  4. [CF 487C Prefix Product Sequence]
  5. Python3基础之数据类型(字典)
  6. Python3-提高效率的方法
  7. Git详解之服务部署
  8. K8S提示Init:ImagePullBackOff
  9. ros中坐标系管理系统
  10. 未来JDK中将不再包含JDBC-ODBC桥