#include #include #include #include #include #include "SimpleIni.h" using namespace std; // 函数声明 bool fileExists(const std::string& filename); bool createDefaultConfig(const std::string& filename); bool renameFolder(const std::string& oldName, const std::string& newName); // 使用 MoveFile int main(){ const std::string configFile = "config.ini"; // 检查 config.ini 是否存在 if (!fileExists(configFile)) { cout << "未检测到 " << configFile << " 文件,正在创建默认配置..." << endl; if (createDefaultConfig(configFile)) { cout << "默认配置文件创建成功。" << endl; } else { cout << "创建默认配置文件失败。" << endl; return 1; // 退出程序,因为无法创建配置文件 } } // 初始化INI文件 CSimpleIniA ini; ini.SetUnicode(); ini.SetMultiKey(true); SI_Error rc = ini.LoadFile(configFile.c_str()); if (rc < 0) { cout << "无法加载配置文件 " << configFile << endl; return 1; } const char* name = ini.GetValue("User", "name", "0"); cout << "欢迎使用CSSO与CS起源切换程序" << endl; cout << "当前模式: " << name <<"(0为CSSO,1为CS起源)"<< endl; cout << "请选择操作:" << endl; cout << "1. CSSO" << endl; cout << "2. CS起源" << endl; cout << "3. 退出" << endl; int choice; cin >> choice; if (choice == 1) { if (strcmp(name, "0") == 0) { cout << "你已是CSSO模式!" << endl; } else { // 切换到CSSO模式 bool result1 = renameFolder("bin", "bin_backup"); bool result2 = renameFolder("bin2", "bin"); if (result1 && result2) { ini.SetValue("User", "name", "0"); SI_Error saveRc = ini.SaveFile(configFile.c_str()); if (saveRc >= 0) { cout << "成功切换到CSSO模式!" << endl; } else { cout << "保存配置文件失败!" << endl; } } else { cout << "切换失败!检查文件路径或权限。" << endl; } Sleep(1500); } } else if (choice == 2) { if (strcmp(name, "1") == 0) { cout << "你已是CS起源模式!" << endl; } else { // 切换到CS起源模式 bool result1 = renameFolder("bin", "bin2"); bool result2 = renameFolder("bin_backup", "bin"); if (result1 && result2) { ini.SetValue("User", "name", "1"); SI_Error saveRc = ini.SaveFile(configFile.c_str()); if (saveRc >= 0) { cout << "成功切换到CS起源模式!" << endl; } else { cout << "保存配置文件失败!" << endl; } } else { cout << "切换失败!检查文件路径或权限。" << endl; } Sleep(1500); } } else if (choice == 3) { cout << "退出程序." << endl; Sleep(100); return 0; } else { cout << "无效的选项,请重新运行程序并选择正确的选项。" << endl; } return 0; } // 检查文件是否存在 bool fileExists(const std::string& filename) { std::ifstream infile(filename); return infile.good(); } // 创建默认的config.ini文件 bool createDefaultConfig(const std::string& filename) { CSimpleIniA ini; ini.SetUnicode(); ini.SetMultiKey(true); // 设置默认值 ini.SetValue("User", "name", "0"); // 保存INI文件 SI_Error rc = ini.SaveFile(filename.c_str()); return (rc >= 0); } // 使用 MoveFile 重命名文件夹 bool renameFolder(const std::string& oldName, const std::string& newName) { if (MoveFile(oldName.c_str(), newName.c_str())) { cout << "重命名成功: " << oldName << " -> " << newName << endl; return true; } else { DWORD error = GetLastError(); cout << "重命名失败: " << oldName << " -> " << newName << " (错误代码: " << error << ")" << endl; return false; } }