问题标题: 酷町堂:鼠标连点器

35
30
已解决
赵泰来
赵泰来
高级光能
高级光能
#include<stdio.h>
#include<windows.h>//头文件
int main(){
    while(1){
        if(GetAsyncKeyState(VK_SPACE)){//按下空格,开始执行
             while(1){
                mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
                Sleep(100);
                if(GetAsyncKeyState(VK_ESCAPE))break; //按esc退出
            }
        }
    }
    return 0;
}
/*
————————————————
版权声明:本文为CSDN博主「苯丸子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tiktiktock/java/article/details/100033634
*/

look,这就是鼠标连点器,最近刷赞都用到鼠标连点器,就在这:

https://blog.csdn.net/tiktiktock/java/article/details/100033634

内容:

直接上代码

#include<stdio.h>
#include<windows.h>//头文件
int main()
{
    while(1)
    {
        if(GetAsyncKeyState(VK_SPACE))//按下空格,开始执行
        {
            while(1)
            {
                mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
                Sleep(500);//每0.5秒点击一次
                if(GetAsyncKeyState(VK_ESCAPE))return 0; //按esc退出
            }
        }
    }
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

好吧好像超10行了,但其实去掉中括号刚好10行
我们来测试一下运行程序,弹出来一个窗口,这时候如果我们按空格,程序就执行了,但是我们先不这么做,先把窗口最小化。
打开一个测试鼠标点击速度的网站http://www.5vmc.com/cps.html(本来是想找一个比点击速度的游戏的,找不到)
点击点我,然后按下空格,程序就会一直帮你点了,要退出就按esc

根据里面的评论,用手点的速度大概是7到10CPS
根据里面的评论,用手点的速度大概是7到10CPS
而如果我们用程序,可以点到很快很快

而如果我们用程序,可以点得很快很快

接下来我们来解析一下里面需要用到的函数
1.GetAsyncKeyState
简单点说,平时写的程序编译执行之后会弹出一个窗口,输入输出什么都是显示在窗口上面的,在窗口外面操作没有反应,而用了这个函数,即使把窗口最小化也是能接收键盘按键的。
看看用法

if(GetAsyncKeyState(VK_SPACE)) //按下空格键
	printf("success");//显示成功
  • 1
  • 2

GetAsyncKeyState()的括号里面要输入虚拟键码,空格键的虚拟键码是VK_SPACE
其他按键的虚拟键码可以查对照表
上面的代码放在循环体里面,作用是,无论你窗口有没有最小化,有没有选中窗口,按下空格键,就显示success

2.mouse_event
这个函数可以模拟鼠标点击

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//当前位置按下鼠标左键
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置松开鼠标左键
  • 1
  • 2

上面两个一起用可以模拟一次鼠标点击
可以简写为

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

想深入了解这个函数的可以看一下里面的参数

VOID mouse_event(
  DWORD     dwFlags,     // 鼠标相关的操作
  DWORD     dx,          // x方向绝对位置或相对位置
  DWORD     dy,          // y方向绝对位置或相对位置
  DWORD     dwData,      // 鼠标轮相关
  ULONG_PTR dwExtraInfo  // 指定与鼠标事件相关的附加32位值
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

更详细的可以自己去查
在这篇文章里,只要把dwfFlages设置为点击,后面的全部设置0就可以了,另外,
使用这两个函数的话,要加上头文件#include<windows.h>
有了这两个函数就可以做鼠标连点器了

如果想自己设置点击频率的话,程序可以再完善一点

#include<stdio.h>
#include<windows.h>

int main()
{
    int i,res;//每秒点击i次,每res秒点击1次
    printf("请输入每秒点击的频率\n");
    scanf("%d",&i);
    res=1000/i;//
	printf("按空格执行");
    while(1)
    {
        if(GetAsyncKeyState(VK_SPACE))
        {
            while(1)
            {
                mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
                if(GetAsyncKeyState(VK_ESCAPE))return 0;
                Sleep(res);
            }
        }
    }
    return 0;
}

记得把.cpp换成.c 

赵泰来在2020-07-29 19:24:35追加了内容

额……看样子挺好的呢………

赵泰来在2020-07-29 19:33:36追加了内容

you也来跟风

 

 

 

 

 

 

 

 

 

你开心就好

我的心在滴血啊啊啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

赵泰来在2020-07-29 19:36:11追加了内容

WHAT??????????????????????????????????

(苦笑)赶紧来刷啊,看看能不能打破迪士尼记录!!!

我的心是痛痛的

赵泰来在2020-07-29 19:38:34追加了内容

潜在的罪犯------>没通知

周**

赵泰来在2020-07-29 19:41:38追加了内容

赵泰来在2020-07-29 19:50:28追加了内容

502了

赵泰来在2020-08-01 18:25:26追加了内容

@张易晨 如果你觉得多,可以看看这个(我的)-->

进去就是502,删不掉

就打这字我就用了半个小时


6
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

连点器害人不浅

4
侯平仄
侯平仄
新手天翼
新手天翼

来刷我一些赞,快点!!!

2
吕若朴
吕若朴
中级光能
中级光能

我拿我一个已经隐退问答的朋友试了一下~

开心!

2
1
邹昊轩
邹昊轩
资深光能
资深光能

aaaaaaaaaaaaaaaaaaa啊啊啊啊啊啊啊啊啊啊啊---------------------------------------

心在滴血,我被刷赞了!!!!!!!!!!!

0
朱优扬
朱优扬
中级天翼
中级天翼

我太喜欢了!!!!!

 

0
张恩泽
张恩泽
高级天翼
高级天翼

不快啊,难道是我的打开方式不对?

张恩泽在2020-08-01 22:26:55追加了内容

我giao,辣么快!

张恩泽在2020-08-01 22:26:59追加了内容

我giao,辣么快!

0
0
0
徐紫尘
徐紫尘
高级光能
高级光能

就让我用你的帖子试一下,挺住[doge]

0
0
0
0
0
0
徐子玄
徐子玄
初级光能
初级光能

这都是些什么操作??666啊!!

0
0
曹砚青
曹砚青
中级光能
中级光能

谢谢你!

我要开始反击了!!

我要开始反击了!!

0
王子健
王子健
初级天翼
初级天翼

没办法,电脑配置高啊,我把Sleep(500)改为Sleep(5)了

0
0
李鑫羽
李鑫羽
初级光能
初级光能

我...我把自己电脑卡死了,额233

0
0
0
0
张天璨
张天璨
新手天翼
新手天翼

牛逼!可是我家电脑一太快就会死机。。

0
刘宇唐
刘宇唐
中级守护
中级守护

迪士尼记录哈哈哈O(∩_∩)O哈哈~

0
0
丁海洋
丁海洋
中级守护
中级守护

谢谢!!!以后抢东西,不用因为单身年份少而担忧了!!

    加油~~~~~~~~

0
胡家翊
胡家翊
高级守护
高级守护

10ms/次无所畏惧

胡家翊在2020-07-29 19:26:29追加了内容

平点

dbc

ac

0
0
0
张天璨
张天璨
新手天翼
新手天翼

谢谢你啦!我有机会反击人啦!

0
武建豪
武建豪
中级天翼
中级天翼

好的,马上拿你测试【doge】

0
0
0
0
王文博
王文博
缔造者之神
缔造者之神

好!这个方法好!把其中的一句代码去掉,电脑瞬间崩掉

0
胡焕宇
胡焕宇
初级守护
初级守护

emm.......

推荐鼠大侠 鼠标连点器

0
张易晨
张易晨
新手光能
新手光能

自从你发了这个,我的邮箱像tm做梦一样

0
董子墨
董子墨
中级天翼
中级天翼

我用(啊!完了!连点器程序忘关了,打字的时候敲空格发作了!) 程序点,轻松上1000

0
赵逸凡
赵逸凡
初级启示者
初级启示者

如果我没记错,你还用这个攻击过我吧

0
0
王子逸
王子逸
新手天翼
新手天翼

王子逸在2020-07-31 09:25:53追加了内容

0
刘英杰
刘英杰
新手天翼
新手天翼

更完美版本(无懈可击)

#include<stdio.h>
#include<windows.h>
#include<iostream>//头文件
using namespace std;
int main(){
    int n;
    while(1){
        system("cls");
        cout<<"请输入每秒点击次数"<<endl;
        cin>>n;
        cout<<"按空格开始执行,按Esc键停止执行";
        a:if(GetAsyncKeyState(VK_SPACE)){//按下空格,开始执行
             while(1){
                mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
                Sleep(1000/n);
                if(GetAsyncKeyState(VK_ESCAPE))break; //按esc退出
            }
            n=0;
        }
        if(n!=0)
        goto a;
    }
    return 0;
}

但是关程序只能叉掉,可能引起电脑事故……

0
0
黄子澄
黄子澄
中级天翼
中级天翼

@潘晨皓 ​​​搜索cps测试

0
王子健
王子健
初级天翼
初级天翼

能不能将空格改为Enter之类的,因为空格一按就会往下去,很可能会卡主

我要回答