#include <Windows.h>
#include <thread>
#include <random>
#include<iostream>
bool g_is_clicking = false;
int mintime = 100;
int maxtime = 200;
void click_thread() {
while (true) {
if (g_is_clicking) {
//使用mouse_event函数发送鼠标事件
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
if (maxtime > mintime) {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(mintime, maxtime);
int sleep_time = dis(gen);
// std:: cout << sleep_time << std::endl;
Sleep(sleep_time);
}
else {
Sleep(mintime);
}
}
Sleep(10);
}
}
void OpenQuickEdit() { //如果你想要在其他项目中使用快速编辑模式,请调用一次此函数来恢复控制台
DWORD fdwMode = ENABLE_QUICK_EDIT_MODE;
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
SetConsoleMode(hStdin, fdwMode);
}
int main() {
std::cout << "请输入连点间隔的最小值";
std::cin >> mintime;
std::cout << "请输入连点间隔的最大值";
std::cin >> maxtime;
if (mintime > maxtime) {
int temp = maxtime;
maxtime = mintime;
mintime = temp;
}
if (mintime < 1 || mintime>1000000000 || maxtime < 1 || maxtime>1000000000) {
std::cout << "输入范围不合法";
return 0;
}
DWORD fdwMode = 0;
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
SetConsoleMode(hStdin, fdwMode); //关闭控制台快速编辑模式,防止造成鼠标侧键检测的不灵敏
std::thread click_t(click_thread);
click_t.detach();
while (true) {
if (GetKeyState(VK_XBUTTON1) & 0x8000) {
std::cout << "VK_XBUTTON1 Click" << std::endl;
g_is_clicking = !g_is_clicking;
// if (g_is_clicking) { // 如果你想要在开启或者关闭的时候播放音频,请下载WinMM.Lib库,并且将open.mp3放到与程序同级的目录下,并且记得将项目属性中的配置属性/高级属性/字符集改为多字节字符集
//mciSendString("open open.mp3 alias open", NULL, 0, 0);
//mciSendString("play open from 0", NULL, 0, 0);
// }
// else {
// mciSendString("open close.mp3 alias close", NULL, 0, 0);
// mciSendString("play close from 0", NULL, 0, 0);
// }
Sleep(200);
}
Sleep(10);
}
return 0;
}
直接复制到visual studio中(我用的是visual studio 2022),是可以直接用的。
然后根据自己的需求微调一下就可以了。
这是我的成品
链接:https://pan.baidu.com/s/1Q_3w66EVEZMP7uuHgYAxlA?pwd=tg8a
提取码:tg8a
如果你对我找的开启/关闭音频不满意,可以自己找一个开启/关闭音频,然后取相同的名字,就可以了
C++侧键激活的随机间隔鼠标连点器 - 知乎 (zhihu.com)
知乎上的这篇文章作者也是我,我把它转到CSDN上来