/*gf25051小黄原创代码专属水印*/
/*
1. 程序后台运行时也能响应全局按键
2. 减少不必要的UI输出,降低CPU占用
3. 修复路径转义、按键重复触发等问题
*/
#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;

int killCount = 0;
bool keyStates[256] = {false};

void checkGlobalKeys() {
    if (GetAsyncKeyState('B') & 0x8000) {
        if (!keyStates['B']) {
            killCount++;
            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('1') & 0x8000) {
        if (!keyStates['1']) {
            system("start https://www.bcoi.cn >nul 2>&1");
            keyStates['1'] = true;
        }
    } else {
        keyStates['1'] = false;
    }

    if (GetAsyncKeyState('2') & 0x8000) {
        if (!keyStates['2']) {
            system("time /t >> killjoy_log.txt 2>&1");
            keyStates['2'] = true;
        }
    } else {
        keyStates['2'] = false;
    }

    if (GetAsyncKeyState('3') & 0x8000) {
        if (!keyStates['3']) {
            system("start https://play.mc.js.cool/1.8/n >nul 2>&1");
            keyStates['3'] = true;
        }
    } else {
        keyStates['3'] = false;
    }

    if (GetAsyncKeyState('4') & 0x8000) {
        if (!keyStates['4']) {
            system("start https://www.dogod.io >nul 2>&1");
            keyStates['4'] = true;
        }
    } else {
        keyStates['4'] = false;
    }

    if (GetAsyncKeyState('5') & 0x8000) {
        if (!keyStates['5']) {
            system("start https://www.slowroads.io >nul 2>&1");
            keyStates['5'] = true;
        }
    } else {
        keyStates['5'] = false;
    }

    if (GetAsyncKeyState('6') & 0x8000) {
        if (!keyStates['6']) {
            system("start cmd >nul 2>&1");
            keyStates['6'] = true;
        }
    } else {
        keyStates['6'] = false;
    }

    if (GetAsyncKeyState('7') & 0x8000) {
        if (!keyStates['7']) {
            system("start https://www.bcoi.cn/d/gfhd/user/507 >nul 2>&1");
            keyStates['7'] = true;
        }
    } else {
        keyStates['7'] = false;
    }

    if (GetAsyncKeyState('8') & 0x8000) {
        if (!keyStates['8']) {
            system("start https://www.bcoi.cn/d/gfhd/user/616 >nul 2>&1");
            keyStates['8'] = true;
        }
    } else {
        keyStates['8'] = false;
    }

    if (GetAsyncKeyState('9') & 0x8000) {
        if (!keyStates['9']) {
            system("start https://xg9.cn/my/4qVWxG >nul 2>&1");
            keyStates['9'] = true;
        }
    } else {
        keyStates['9'] = false;
    }
    
    if (GetAsyncKeyState('P') & 0x8000) {
        if (!keyStates['P']) {
    		HWND hwnd = GetConsoleWindow();
    		ShowWindow(hwnd, SW_HIDE);
            keyStates['P'] = true;
        }
    } else {
        keyStates['P'] = false;
    }

    // X键:恢复极域
    /*if (GetAsyncKeyState('X') & 0x8000) {
        if (!keyStates['X']) {
            system("start \"\" \"C:\\Program Files (x86)\\Mythware\\极域课堂管理系统软件V6.0 2016 豪华版\\StudentMain.exe\" >nul 2>&1");
            keyStates['X'] = true;
        }
    } else {
        keyStates['X'] = false;
    }*/
}

int main() {
    system("title 极域杀手v8.8Beta版本 - 全局监听模式");
    cout << "极域杀手v8.8Beta版本已启动!" << endl<<endl;
    cout << "后台全局监听中,按以下按键执行操作:" << endl<<endl;
    cout << "B: 结束极域进程 | C: 打开任务管理器 | X: 恢复极域"<<endl << endl;
    cout << "1-9: 打开对应网页/程序 | 按ESC退出程序" <<endl<< endl;
	  cout<<"1.打开bcoi"<<endl<<endl;
	  cout<<"2.显示时间"<<endl<<endl;
	  cout<<"3.我的世界"<<endl<<endl;
	  cout<<"4.抡棒作战"<<endl<<endl;
	  cout<<"5.Slowroads"<<endl<<endl;
	  cout<<"6.命令提示符"<<endl<<endl;
	  cout<<"7.gf25051小黄主页"<<endl<<endl;
	  cout<<"8.gf25152鼠鼠主页"<<endl<<endl;
	  cout<<"9.游戏总结"<<endl<<endl;
	  cout<<"10.P:后台运行杀手(后台运行更隐蔽)"<<endl<<endl;
	  cout<<"11.ESC:退出杀手";
	  //cout<<"10.按Q:删掉极域!!!!!!!!!!!"<<endl<<endl;
	  //cout<<"11.按X:老师来了!"<<endl<<endl<<endl;
    while (true) {
        checkGlobalKeys();

        if (GetAsyncKeyState(VK_ESCAPE) & 0x8000) {
            cout << "\n程序已退出,共击杀极域 " << killCount << " 次" << endl;
            break;
        }

        Sleep(10);
    }

    return 0;
}
/*gf25051小黄原创代码专属水印*/