code/change.cpp

139 lines
3.9 KiB
C++
Raw Normal View History

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;
}
}