2024-10-04 16:03:58 +08:00
|
|
|
|
#include <iostream>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
#include <string>
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#include <cstdlib>
|
2024-10-04 20:35:52 +08:00
|
|
|
|
#include <fstream>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
#include "SimpleIni.h"
|
2024-10-04 16:03:58 +08:00
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
bool fileExists(const std::string& filename);
|
|
|
|
|
bool createDefaultConfig(const std::string& filename);
|
2024-10-05 17:32:34 +08:00
|
|
|
|
bool renameFolder(const std::string& oldName, const std::string& newName); // ʹ<><CAB9> MoveFile
|
2024-10-04 17:27:26 +08:00
|
|
|
|
|
2024-10-04 16:42:46 +08:00
|
|
|
|
int main() {
|
2024-10-04 17:27:26 +08:00
|
|
|
|
const std::string configFile = "config.ini";
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD> config.ini <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
if (!fileExists(configFile)) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "δ<EFBFBD><EFBFBD><EFBFBD> " << configFile << " <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..." << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
if (createDefaultConfig(configFile)) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>" << endl;
|
|
|
|
|
return 1; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><>ʼ<EFBFBD><CABC>INI<4E>ļ<EFBFBD>
|
2024-10-04 16:42:46 +08:00
|
|
|
|
CSimpleIniA ini;
|
|
|
|
|
ini.SetUnicode();
|
|
|
|
|
ini.SetMultiKey(true);
|
2024-10-04 17:27:26 +08:00
|
|
|
|
|
|
|
|
|
SI_Error rc = ini.LoadFile(configFile.c_str());
|
|
|
|
|
if (rc < 0) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> " << configFile << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const char* name = ini.GetValue("User", "name", "0");
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD>ӭʹ<EFBFBD><EFBFBD>CSSO<EFBFBD><EFBFBD>CS<EFBFBD><EFBFBD>Դ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD>ǰģʽ: " << name <<"(0ΪCSSO<53><4F>1ΪCS<43><53>Դ)"<< endl;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
cout << "1. CSSO" << endl;
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "2. CS<43><53>Դ" << endl;
|
|
|
|
|
cout << "3. <20>˳<EFBFBD>" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
|
|
|
|
|
int choice;
|
|
|
|
|
cin >> choice;
|
|
|
|
|
|
|
|
|
|
if (choice == 1) {
|
|
|
|
|
if (strcmp(name, "0") == 0) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CSSOģʽ!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20>л<EFBFBD><D0BB><EFBFBD>CSSOģʽ
|
2024-10-04 20:35:52 +08:00
|
|
|
|
bool result1 = renameFolder("bin", "bin_backup");
|
|
|
|
|
bool result2 = renameFolder("bin2", "bin");
|
2024-10-04 17:27:26 +08:00
|
|
|
|
|
2024-10-04 20:35:52 +08:00
|
|
|
|
if (result1 && result2) {
|
2024-10-04 17:27:26 +08:00
|
|
|
|
ini.SetValue("User", "name", "0");
|
|
|
|
|
SI_Error saveRc = ini.SaveFile(configFile.c_str());
|
|
|
|
|
if (saveRc >= 0) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD>ɹ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>CSSOģʽ!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD>л<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ޡ<EFBFBD>" << endl;
|
2024-10-04 16:42:46 +08:00
|
|
|
|
}
|
2024-10-04 20:35:52 +08:00
|
|
|
|
Sleep(1500);
|
2024-10-04 16:42:46 +08:00
|
|
|
|
}
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
|
|
|
|
else if (choice == 2) {
|
|
|
|
|
if (strcmp(name, "1") == 0) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CS<EFBFBD><EFBFBD>Դģʽ!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20>л<EFBFBD><D0BB><EFBFBD>CS<43><53>Դģʽ
|
2024-10-04 20:35:52 +08:00
|
|
|
|
bool result1 = renameFolder("bin", "bin2");
|
|
|
|
|
bool result2 = renameFolder("bin_backup", "bin");
|
2024-10-04 17:27:26 +08:00
|
|
|
|
|
2024-10-04 20:35:52 +08:00
|
|
|
|
if (result1 && result2) {
|
2024-10-04 17:27:26 +08:00
|
|
|
|
ini.SetValue("User", "name", "1");
|
|
|
|
|
SI_Error saveRc = ini.SaveFile(configFile.c_str());
|
|
|
|
|
if (saveRc >= 0) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD>ɹ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD>CS<EFBFBD><EFBFBD>Դģʽ!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><EFBFBD>!" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
|
|
|
|
} else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD>л<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ޡ<EFBFBD>" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
2024-10-04 20:35:52 +08:00
|
|
|
|
Sleep(1500);
|
2024-10-04 16:42:46 +08:00
|
|
|
|
}
|
2024-10-04 16:03:58 +08:00
|
|
|
|
}
|
2024-10-04 17:27:26 +08:00
|
|
|
|
else if (choice == 3) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." << endl;
|
2024-10-04 17:38:10 +08:00
|
|
|
|
Sleep(100);
|
2024-10-04 17:27:26 +08:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ѡ<EFBFBD>" << endl;
|
2024-10-04 17:27:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
bool fileExists(const std::string& filename) {
|
|
|
|
|
std::ifstream infile(filename);
|
|
|
|
|
return infile.good();
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD>config.ini<6E>ļ<EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
bool createDefaultConfig(const std::string& filename) {
|
|
|
|
|
CSimpleIniA ini;
|
|
|
|
|
ini.SetUnicode();
|
|
|
|
|
ini.SetMultiKey(true);
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
2024-10-04 17:27:26 +08:00
|
|
|
|
ini.SetValue("User", "name", "0");
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>INI<4E>ļ<EFBFBD>
|
2024-10-04 17:27:26 +08:00
|
|
|
|
SI_Error rc = ini.SaveFile(filename.c_str());
|
|
|
|
|
return (rc >= 0);
|
2024-10-04 20:35:52 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-10-05 17:32:34 +08:00
|
|
|
|
// ʹ<><CAB9> MoveFile <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
2024-10-04 20:35:52 +08:00
|
|
|
|
bool renameFolder(const std::string& oldName, const std::string& newName) {
|
|
|
|
|
if (MoveFile(oldName.c_str(), newName.c_str())) {
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>: " << oldName << " -> " << newName << endl;
|
2024-10-04 20:35:52 +08:00
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
DWORD error = GetLastError();
|
2024-10-05 17:32:34 +08:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>: " << oldName << " -> " << newName << " (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " << error << ")" << endl;
|
2024-10-04 20:35:52 +08:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|