JAM发布新版本
极域控制器+MC启动器发布V8版本!!!(包括完整版)
(英文名称: JiyuController And MinecraftLauncher ) 以下简称JAM
V8 版本首次出现了两个分支 : Lite Version 和 Standard version
Lite Version (轻量版)
只有控制极域的功能!!!
但文件大小是标准版的几千分之一!!!
甚至直接把源代码编译就能直接运行!!!
源码也直接贴下面。
当然也有编译好的exe。。
#include <iostream>
#include <cstdio>
#include <windows.h>
#include <tlhelp32.h>
#include <process.h>
#include <ctime>
#pragma comment(lib,"advapi32")
using namespace std;
UINT GetMythwarePathFromRegedit(char *str) {
HKEY retKey;
char tstr[200] = "SOFTWARE\\WOW6432Node\\TopDomain\\e-Learning Class Standard\\1.00";
DWORD dwDisposition = REG_OPENED_EXISTING_KEY;
LONG ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, tstr, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ, NULL, &retKey, &dwDisposition);
if (ret != ERROR_SUCCESS) {
//打开注册表失败
return FALSE;
}
BYTE tByte[MAX_PATH * 2 + 1];
DWORD nSize = MAX_PATH * 2 + 1;
int sum = 0;
ret = RegQueryValueEx(retKey, "TargetDirectory", NULL, NULL, tByte, &nSize);
if (ret == ERROR_SUCCESS) {
for (int i = 0; i < int(nSize); i += 1) {
*(str + sum) = tByte[i];
if (*(str + sum++) == '\\') {
*(str + sum++) = '\\';
}
}
return TRUE;
}
return FALSE;
}
void color(int a) {
/*亮白*/ if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*蓝色*/ if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*绿色*/ if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
/*紫色*/ if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
/*红色*/ if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
/*黄色*/ if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
/*深蓝色*/ if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
/*土黄色or金黄色*/ if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);
/*灰色接近白*/ if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
void SuspendProcess(DWORD process_id) {
HANDLE hThreadSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
THREADENTRY32 threadEntry;
threadEntry.dwSize = sizeof(THREADENTRY32);
Thread32First(hThreadSnapshot, &threadEntry);
do {
if (threadEntry.th32OwnerProcessID == process_id) {
HANDLE hThread = OpenThread(THREAD_ALL_ACCESS, FALSE,threadEntry.th32ThreadID);
SuspendThread(hThread);
CloseHandle(hThread);
}
} while (Thread32Next(hThreadSnapshot, &threadEntry));
CloseHandle(hThreadSnapshot);
}
void ResumeProcess(DWORD process_id) {
HANDLE hThreadSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
THREADENTRY32 threadEntry;
threadEntry.dwSize = sizeof(THREADENTRY32);
Thread32First(hThreadSnapshot, &threadEntry);
do {
if (threadEntry.th32OwnerProcessID == process_id) {
HANDLE hThread = OpenThread(THREAD_ALL_ACCESS, FALSE,threadEntry.th32ThreadID);
ResumeThread(hThread);
CloseHandle(hThread);
}
} while (Thread32Next(hThreadSnapshot, &threadEntry));
CloseHandle(hThreadSnapshot);
}
DWORD qureyProcessId(std::string name) {
DWORD pid;
PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (Process32First(snapshot, &entry) == TRUE) {
while (Process32Next(snapshot, &entry) == TRUE) {
if (std::string(entry.szExeFile) == name) {
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
pid = GetProcessId(hProcess);
//std::cout << "pid = " << pid << std::endl;
// Do stuff..
CloseHandle(hProcess);
}
}
}
CloseHandle(snapshot);
return pid;
}
int main() {
/*
color(0);cout<<"1";
color(1);cout<<"1";
color(2);cout<<"1";
color(3);cout<<"1";
color(4);cout<<"1";
color(5);cout<<"1";
color(6);cout<<"1";
color(7);cout<<"1";
color(8);cout<<"1";
*/
SetConsoleTitle("极域控制器+mc启动器V8 Lite Version");
color(0) ;
printf ("软件编写者:ZSY ,Volder\n版本:V8 Lite Version\n") ;
while(true) {
color(1);
printf ("输入0结束极域进程(相当于关闭极域节省内存,但老师看你的屏幕会黑屏)\n") ;
color(2) ;
printf ("输入1打开极域(可以被老师控制,就是正常情况)\n") ;
color(3) ;
printf ("输入2挂起极域(就像点了暂停 ,内存不会改变,但不占用cpu ,老师看你的屏幕会是你挂起时的屏幕)\n") ;
color(4) ;
printf ("输入3恢复极域进程(与第二个选项相反)\n") ;
color(5) ;
printf ("输入4退出本软件\n") ;;
color(0);
int val;
scanf("%d",&val);
printf("\n \n");
if(val==0) {
color(1);
system("taskkill -f -im StudentMain.exe");
color(8);
} else if(val==1) {
char ch[100];
if(GetMythwarePathFromRegedit(ch)) {
color(5);
strcat(ch,"StudentMain.exe");
printf("极域课堂的安装路径是:%s\n",ch);
color(1);
WinExec(ch,SW_SHOW);
//WinExec("C:\\Program Files (x86)\\Mythware\\极域课堂管理系统软件V6.0 2016 豪华版\\StudentMain.exe",SW_SHOW);
printf("已打开极域\n");
} else {
color(4);
printf("你尚未用管理员程序运行或未安装极域课堂!!!\n");
}
color(8);
} else if(val==2) {
color(1);
SuspendProcess(qureyProcessId("StudentMain.exe"));
printf("已挂起极域进程\n");
color(8);
} else if(val==3) {
color(1);
ResumeProcess(qureyProcessId("StudentMain.exe"));
printf("已恢复极域进程\n");
color(8);
} else if(val==4) {
color(1);
printf("你已退出本软件,欢迎下次使用\n");
system("pause");
color(8);
return 0;
}
printf("\n \n");
}
return 0;
}
Standard Version (标准版)
就是不仅有极域控制 ,还可以启动1.20.1和1.16.5不同的Minecraft
当然大小会很大
下载链接:百度网盘提取码:3yjp
源码在安装后文件夹的 source 文件夹内
只有源码没有mc文件是启动不了的。。
软件截图 :
(注:有时可能要手动用管理员身份运行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Volder の 小窝!