c语言,10行代码写一个简单鼠标连点器

直接上代码

#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;
}

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

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

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

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

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

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

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

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

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

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

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

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

更详细的可以自己去查
在这篇文章里,只要把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;
}
  • 46
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值