- gf25002 的博客
gf25002的多功能连点器
- @ 2026-4-4 12:33:40
自己写的,用着放心
功能:
1.左右键连点(速度由用户输入)
2.F3 - system指令(可直接输入指令,执行放心交给程序,相当于一个cmd的窗口了啊)
3.F4 - 选择网站开启(用于快捷进入网站的,在system里面也能用,用start的就行)
4.F5 - jiyu操作
5.F6、F7、F8 - 定点连点与跟随连点(可按F6开始/停止,按ESC退出程序)
#include<windows.h>
#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<string>
#include<limits>
using namespace std;
bool running=false,keyStates[256]={false};
enum Mode{FIXED_POINT,FOLLOW_MOUSE};
Mode currentMode=FIXED_POINT;
int targetX=-1,targetY=-1,interval=100,speed,killcnt=0;
void left_click(int x,int y,int speed){
SetCursorPos(x,y),mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0),Sleep(speed),mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);
}
void right_click(int x,int y,int speed){
SetCursorPos(x,y),mouse_event(MOUSEEVENTF_RIGHTDOWN,x,y,0,0),Sleep(speed),mouse_event(MOUSEEVENTF_RIGHTUP,x,y,0,0);
}
void systemcommand(){
system("cls");
system("color 2");
string command;
cout<<" ===== 使用system()快捷功能 =====\n请输入指令(输入exit退出):\n(注:可以直接输入一个dir /s装B)";
cin.ignore(numeric_limits<streamsize>::max(),'\n');
while (true){
cout<<"> ";
getline(cin, command);
if(command=="exit")break;
if(!command.empty())system(command.c_str());
}
cout<<"功能已退出。"<<endl;
}
void websites(){
cout<<" ===== 开启网站快捷功能 =====\n请选择:\n A.BCOI\n B.博弈!\n C.gf25002的主页\n D.MC网页版\n E.很好测试连点器的poki小游戏\n(按P键退出)\n";
bool choose=false;
while(choose==false){
cout<<"选择:";
char nowchoose=_getch();
cout<<nowchoose<<"\n";
switch(nowchoose){
case 'a':system("start https://www.bcoi.cn");cout<<"已开启!\n";break;
case 'b':system("start https://poki.com/zh/g/master-chess");system("start https://poki.com/zh/g/casual-chess");system("start https://poki.com/zh/g/chessformer");system("start https://poki.com/zh/g/classic-chess");system("start https://poki.com/zh/g/chess-multiplayer");cout<<"已开启!\n";break;
case 'c':system("start https://www.bcoi.cn/d/gfhd/user/472");cout<<"已开启!\n";break;
case 'd':system("start https://play.mcjs.cc/1.8.8/");cout<<"已开启!\n";break;
case 'e':system("start https://poki.com/zh/g/stickman-hook");system("start https://poki.com/zh/g/neon-challenge-legends");cout<<"已开启!\n";break;
case 'A':system("start https://www.bcoi.cn");cout<<"已开启!\n";break;
case 'B':system("start https://poki.com/zh/g/master-chess");system("start https://poki.com/zh/g/casual-chess");system("start https://poki.com/zh/g/chessformer");system("start https://poki.com/zh/g/classic-chess");system("start https://poki.com/zh/g/chess-multiplayer");cout<<"已开启!\n";break;
case 'C':system("start https://www.bcoi.cn/d/gfhd/user/472");cout<<"已开启!\n";break;
case 'D':system("start https://play.mcjs.cc/1.8.8/");cout<<"已开启!\n";break;
case 'E':system("start https://poki.com/zh/g/neon-challenge-legends");system("start https://poki.com/zh/g/stickman-hook");cout<<"已开启!\n";break;
case 'p':choose=true;break;
case 'P':choose=true;break;
default:cout<<"无效选择!\n";break;
}
}
cout<<"功能已退出!\n";
}
const string STUDENT_MAIN_PATH="C:\\Program Files (x86)\\Mythware\\极域课堂管理系统软件V6.0 2016 豪华版\\StudentMain.exe";
void checkGlobalKeys(){
if(GetAsyncKeyState('B')&0x8000){
if(!keyStates['B']){
killcnt++;
system("taskkill /F /IM StudentMain.exe /T >nul 2>&1");
keyStates['B']=true;
}
}else keyStates['B']=false;
if(GetAsyncKeyState('C')&0x8000){
if(!keyStates['C']){
system("start taskmgr.exe >nul 2>&1");
keyStates['C']=true;
}
}else keyStates['C']=false;
if(GetAsyncKeyState('P')&0x8000){
if(!keyStates['P']){
HWND hwnd=GetConsoleWindow();
ShowWindow(hwnd,SW_HIDE);
keyStates['P']=true;
}
}else keyStates['P']=false;
if(GetAsyncKeyState('S')&0x8000){
if(!keyStates['S']){
HWND hwnd=GetConsoleWindow();
ShowWindow(hwnd,SW_SHOW);
keyStates['S']=true;
}
}else keyStates['S']=false;
if(GetAsyncKeyState('X')&0x8000){
if(!keyStates['X']){
string startCmd="start \"\" \""+STUDENT_MAIN_PATH+"\"";
int result=system(startCmd.c_str());
if(result==0)cout<<" 成功!"<<endl;
else cout<<" 失败!请检查路径是否正确:"<<STUDENT_MAIN_PATH<<endl<<" 请确认极域安装路径,并修改代码中的 STUDENT_MAIN_PATH 常量"<<endl;
keyStates['X']=true;
}
}else keyStates['X']=false;
}
void jiyu(){
cout<<" ===== 极域操作等功能 =====\nB:结束进程|C:打开任务管理器|X:恢复\n\nP:后台运行|S:恢复控制台显示\n\nESC:退出程序";
while(true){
checkGlobalKeys();
if(GetAsyncKeyState(VK_ESCAPE)&0x8000){
cout<<"\n功能已退出,共"<<killcnt<<"次"<<endl;
HWND hwnd=GetConsoleWindow();
ShowWindow(hwnd,SW_SHOW);
Sleep(2000);
break;
}
Sleep(10);
}
}
int main(){
system("title ===== gf25002的智能连点器 =====");
cout<<"请输入速度(单位:毫秒/次)";
while(1){
cin>>speed;
if(speed>=0)break;
else cout<<"速度不能为负数!请重新输入:";
}
system("cls");
cout<<" ===== 智能连点器 =====\n可放到后台执行功能键!\n功能说明:\n F3 - system函数功能\n F4 - 选择进入网站(F4是我选过的键,会判断键入为一个空格一个右尖号,但也比其他功能键好点,如F9是一个空格一个C)\n F5 - 极域等操作\n F6 - 开始/停止连点(定点模式下记录当前位置)\n F7 - 定点连点模式\n F8 - 跟随鼠标连点模式\n ESC - 退出程序\n当前模式:定点连点模式\n";
while(true){
POINT cursorPos;
GetCursorPos(&cursorPos);
if(GetAsyncKeyState(VK_F3)&0x8000)systemcommand(),Sleep(200);
if(GetAsyncKeyState(VK_F4)&0x8000)websites(),Sleep(200);
if(GetAsyncKeyState(VK_F5)&0x8000)jiyu();
if(GetAsyncKeyState(VK_F6)&0x8000){running=!running;if(running&¤tMode==FIXED_POINT)targetX=cursorPos.x,targetY=cursorPos.y,cout<<"当前位置坐标("<<targetX<<", "<<targetY<<")\n";cout<<(running?"开始":"停止")<<"连点\n";Sleep(200);}
if(GetAsyncKeyState(VK_F7)&0x8000)currentMode=FIXED_POINT,cout<<"切换到定点连点模式"<<"\n";
if(GetAsyncKeyState(VK_F8)&0x8000)currentMode=FOLLOW_MOUSE,cout<<"切换到跟随鼠标连点模式\n";
if(running){if(currentMode==FIXED_POINT&&targetX!=-1&&targetY!=-1)left_click(targetX,targetY,speed);else if(currentMode==FOLLOW_MOUSE)left_click(cursorPos.x,cursorPos.y,speed);Sleep(interval);}
if(GetAsyncKeyState(VK_ESCAPE)&0x8000){cout<<"退出程序\n";break;}
if(GetAsyncKeyState('P')&0x8000)if(!keyStates['P']){HWND hwnd=GetConsoleWindow();ShowWindow(hwnd,SW_HIDE);keyStates['P']=true;}else keyStates['P']=false;
if(GetAsyncKeyState('S')&0x8000&&(!keyStates['S'])){HWND hwnd=GetConsoleWindow();ShowWindow(hwnd,SW_SHOW);keyStates['S']=true;}else keyStates['S']=false;
Sleep(speed);
}
}
2026/4/4 10:48 至 2026/4/6 20:43 作