连点器(升级版(ms级))(AI做):
2026-07-31 12:59:49
发布于:浙江
#define _WIN32_WINNT 0x0601
#include <windows.h>
#include <iostream>
using namespace std;
// 系统版本枚举
enum WinVer
{
WIN_UNKNOWN,
WIN7,
WIN10
};
// 模拟鼠标左键单击
void ClickL()
{
INPUT input[2] = { 0 };
input[0].type = INPUT_MOUSE;
input[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
input[1].type = INPUT_MOUSE;
input[1].mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(2, input, sizeof(INPUT));
}
// 模拟鼠标右键单击
void ClickR()
{
INPUT input[2] = { 0 };
input[0].type = INPUT_MOUSE;
input[0].mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
input[1].type = INPUT_MOUSE;
input[1].mi.dwFlags = MOUSEEVENTF_RIGHTUP;
SendInput(2, input, sizeof(INPUT));
}
// 统一高精度延时(Win7/Win10通用,无多媒体库依赖)
void HighPrecisionSleep(double ms)
{
if (ms >= 1.0)
{
Sleep((DWORD)ms);
return;
}
LARGE_INTEGER freq, start, now;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
double targetSec = ms / 1000.0;
double elapsedSec = 0.0;
do
{
QueryPerformanceCounter(&now);
elapsedSec = (double)(now.QuadPart - start.QuadPart) / freq.QuadPart;
} while (elapsedSec < targetSec);
}
bool keyF1Down = false;
bool keyF2Down = false;
int main()
{
system("color a");
WinVer systemVer = WIN_UNKNOWN;
int selectOs;
double delayMs;
// 手动选择系统
cout << "======== Dev-C++5.11 鼠标连点器 ========" << endl;
cout << "请手动选择你的操作系统:" << endl;
cout << " 1 = Windows 7" << endl;
cout << " 2 = Windows 10" << endl;
cout << "输入数字(1/2):";
cin >> selectOs;
// 转换选择为系统枚举
if (selectOs == 1)
{
systemVer = WIN7;
cout << "\n已选择:Windows 7" << endl;
}
else if (selectOs == 2)
{
systemVer = WIN10;
cout << "\n已选择:Windows 10" << endl;
}
else
{
systemVer = WIN_UNKNOWN;
cout << "\n输入错误,默认使用兼容模式" << endl;
}
cout << "全部采用高精度性能计时器延时\n" << endl;
cout << "请输入连点间隔(ms,支持小数,例:0.5 / 10):";
cin >> delayMs;
while (delayMs <= 0)
{
cout << "间隔必须大于0!请重新输入:";
cin >> delayMs;
}
cout << "\n【当前连点间隔:" << delayMs << " 毫秒】" << endl;
cout << "============================================" << endl;
cout << "F1 键:开启/关闭 左键连点" << endl;
cout << "F2 键:开启/关闭 右键连点" << endl;
cout << "ESC键:退出程序" << endl;
cout << "============================================" << endl;
cout << "提示:间隔小于1ms启用高精度计时,数值越小CPU占用越高\n" << endl;
bool Lflag = false, Rflag = false;
while (true)
{
// F1 切换左键连点
if ((GetAsyncKeyState(VK_F1) & 0x8000) && !keyF1Down)
{
Lflag = !Lflag;
keyF1Down = true;
if (Lflag)
cout << ">> 左键连点【开启】,间隔:" << delayMs << "ms" << endl;
else
cout << ">> 左键连点【关闭】" << endl;
}
if (!(GetAsyncKeyState(VK_F1) & 0x8000))
keyF1Down = false;
// F2 切换右键连点
if ((GetAsyncKeyState(VK_F2) & 0x8000) && !keyF2Down)
{
Rflag = !Rflag;
keyF2Down = true;
if (Rflag)
cout << ">> 右键连点【开启】,间隔:" << delayMs << "ms" << endl;
else
cout << ">> 右键连点【关闭】" << endl;
}
if (!(GetAsyncKeyState(VK_F2) & 0x8000))
keyF2Down = false;
// 执行左键连点
if (Lflag)
{
ClickL();
HighPrecisionSleep(delayMs);
}
// 执行右键连点
if (Rflag)
{
ClickR();
HighPrecisionSleep(delayMs);
}
// ESC 退出程序
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000)
{
cout << "\n检测到ESC按键,程序即将退出..." << endl;
Sleep(500);
break;
}
Sleep(1);
}
return 0;
}
这里空空如也














有帮助,赞一个