自己写的,用着放心

功能:

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&&currentMode==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 作