Re:连点器
连点器
介绍
顾名思义,可以连续点的机器。
当然,连续可快可慢;机器意味着不许要人工点击;可以是生活中的机器,也可以是电脑中的程序。
现在,连点器网上一搜一大堆,什么鼠标连点精灵,鼠大侠……不仅有电脑的,还有安卓系统的。
但是,用这些软件,我很不放心。说不定就有什么木马病毒呢……
再说,我们这些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
这里把所有东西的压缩包放在这了……
Re:连点器的更多相关文章
- 自定义基于 VLC 的视频播放器
前言(蛋疼的背景故事) 前段时间,接了一个小项目,有个需求是要在系统待机一段时间以后,循环播放 MV(类似于 Windows 系统的屏幕保护). 听到这个需求,我首先想到的是 MediaPlayer ...
- 【.net 深呼吸】细说CodeDom(7):索引器
在开始正题之前,先补充一点前面的内容. 在方法中,如果要引用方法参数,前面的示例中,老周使用的是 CodeVariableReferenceExpression 类,它用于引用变量,也适用于引用方法参 ...
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
- Python高手之路【四】python函数装饰器
def outer(func): def inner(): print('hello') print('hello') print('hello') r = func() print('end') p ...
- Sublime Text 3中文乱码解决方法以及安装包管理器方法
一般出现乱码是因为文本采用了GBK编码格式,Sublime Text默认不支持GBK编码. 安装包管理器 简单安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令 ...
- Python应用03 使用PyQT制作视频播放器
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载. 最近研究了Python的两个GUI包,Tkinter和PyQT.这两个GUI包的底层分别是Tcl/ ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- 6. ModelDriven拦截器、Preparable 拦截器
1. 问题 Struts2 的 Action 我们将它定义为一个控制器,但是由于在 Action 中也可以来编写一些业务逻辑,也有人会在 Action 输入业务逻辑层. 但是在企业开发中,我们一般会将 ...
- JavaScript自定义媒体播放器
使用<audio>和<video>元素的play()和pause()方法,可以手工控制媒体文件的播放.组合使用属性.事件和这两个方法,很容易创建一个自定义的媒体播放器,如下面的 ...
- XML技术之DOM4J解析器
由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...
随机推荐
- 对于kvm配置ssh
首先我们要让自己的机器开启ssh服务 首先更新源 sudo apt-get update 安装ssh服务 sudo apt-get install openssh-server 检测是否已启动 ps ...
- c#数字图像处理(一)Bitmap类、 Bitmapdata类和 Graphics类
Bitmap类. Bitmapdata类和 Graphics类是C#图像处理中最重要的3个类,如果要用C#进行图像处理,就一定要掌握它们. 1.1 Bitmap类Bitmap对象封装了GDI+中的一个 ...
- kafka概念扫盲
一.kafka概述 1.1.定义 Kakfa是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据的实时处理领域 1.2.消息队列 1.2.1.传统的消息队列&am ...
- 1.Vue初始及相关Vue核心组件
1.Vue官方文档 官网文档:https://cn.vuejs.org/v2/guide/ 2.Vue-cli官方文档(脚手架) 官网文档:https://cli.vuejs.org/zh/guide ...
- idea 2019.3 破解激活码
idea激活码(亲测 idea 2019.3可用)有效期到2021年3月: QYYBAC9D3J-eyJsaWNlbnNlSWQiOiJRWVlCQUM5RDNKIiwibGljZW5zZWVOYW1 ...
- Android教程2020 - RecyclerView获取滑动距离
获取RecyclerView滑动的距离. Android教程2020 - 系列总览 本文链接 前面我们已经用RecyclerView显示一些数据. 本文演示如何获取RecyclerView的滑动距离. ...
- Django报错Watching for file changes with StatReloader
Django项目运行时出现:Watching for file changes with StatReloader错误 原因:环境里的django或者python的版本有问题 解决方案:升级或者降级D ...
- 暑假第二周总结(在centos系统中安装eclipse出错,改为安装ubantu)
本周试着在centos6.4系统上安装eclipse,在林子雨老师的教程所给的链接无法下载,后来找了许多的教程,即便是从官网下载之后,即便是安装好之后eclipse都无法正常启动,后来翻阅借阅的图书后 ...
- kubernetes容器端口设置的坑
1.使用dockerhub上面的镜像的时候,先到dockerhub上看镜像的相关信息. 2.不能随便修改容器应用的镜像,会出问题.
- VS2013下搭建SDL开发环境
什么是SDL? SDL是 "Simple DirectMedia Layer"的缩写,它是一个开源的项目. 为多媒体编程而设计 SDL是一个跨平台的多媒体库,它通过OpenGL和2 ...