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