#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
而如果我们用程序,可以点得很快很快
接下来我们来解析一下里面需要用到的函数
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;
}