Re:连点器
阅读原文时间:2023年07月12日阅读:1

连点器

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

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

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

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

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

那怎么办呢?

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

#include
#include
#include
#include
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
#include
#include
#include
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
#include
#include
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。十分方便快捷!

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

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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章