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

直接上代码

#include
#include//头文件
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

c语言,10行代码写一个简单鼠标连点器_第1张图片
根据里面的评论,用手点的速度大概是7到10CPS
c语言,10行代码写一个简单鼠标连点器_第2张图片

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

接下来我们来解析一下里面需要用到的函数
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
有了这两个函数就可以做鼠标连点器了

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

#include
#include

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

你可能感兴趣的:(c,编程,鼠标连点器,好玩)