From 0a678d4e8368730e60e17aafbb2f0d055888402a Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 25 十月 2024 15:11:35 +0800 Subject: [PATCH] '修改' --- FloatTrade/ConfigUtil.cpp | 47 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 36 insertions(+), 11 deletions(-) diff --git a/FloatTrade/ConfigUtil.cpp b/FloatTrade/ConfigUtil.cpp index 57f8929..4c3b35c 100644 --- a/FloatTrade/ConfigUtil.cpp +++ b/FloatTrade/ConfigUtil.cpp @@ -12,10 +12,35 @@ return file.good(); // 如果文件成功打开,则返回 true } +string ConfigUtil::getConfigPath() +{ + wchar_t* appDataPath = nullptr; + CString path; + // 获取APPData目录路径 + if (SUCCEEDED(SHGetKnownFolderPath(FOLDERID_RoamingAppData, 0, NULL, &appDataPath))) { + std::wcout << L"APPData目录路径: " << appDataPath << std::endl; + path.Append(appDataPath); + CoTaskMemFree(appDataPath); // 释放内存 + } + else { + std::wcerr << L"无法获取APPData目录路径" << std::endl; + return "config.cfg"; + } + path.Append(L"\\悬浮盯盘"); + // 判断文件夹是否存在 + DWORD fileAttributes = GetFileAttributesW(path); + if (fileAttributes == INVALID_FILE_ATTRIBUTES) { + CreateDirectoryW(path, NULL); + } + string fpath = StringUtil::cstring2String(path); + fpath.append("\\config.cfg"); + return fpath.c_str(); +} + void ConfigUtil::readConfig(libconfig::Config& config) { - string strConfPath = "config.cfg"; + string strConfPath = getConfigPath(); if (!fileExists(strConfPath)) { std::ofstream file(strConfPath); file.is_open(); @@ -36,7 +61,7 @@ void ConfigUtil::writeConfig(libconfig::Config& config) { - config.writeFile("config.cfg"); + config.writeFile(getConfigPath().c_str()); } int ConfigUtil::readIntConfig(const char* key) @@ -167,11 +192,11 @@ pos[0] = 0; pos[1] = 0; try { - string str = readStringConfig("sell_rule_show_pos"); + string str = readStringConfig("sell_rule_show_pos"); // 分隔字符串 int split_index = str.find(","); - int x= stoi( str.substr(0, split_index)); - int y = stoi(str.substr(split_index + 1, str.length() - (split_index+1))); + int x = stoi(str.substr(0, split_index)); + int y = stoi(str.substr(split_index + 1, str.length() - (split_index + 1))); pos[0] = x; pos[1] = y; } @@ -208,12 +233,12 @@ MyPoint ConfigUtil::getWindowPos() { - + // 页码位置 try { - string data = readStringConfig("window_pos"); - rapidjson::Document root = JsonUtil::parseUTF8(data); - return MyPoint({ root[0].GetInt(), root[1].GetInt()}); + string data = readStringConfig("window_pos"); + rapidjson::Document root = JsonUtil::parseUTF8(data); + return MyPoint({ root[0].GetInt(), root[1].GetInt() }); } catch (...) { @@ -260,7 +285,7 @@ return volumeList; } catch (...) { - + } return list<int>(); } @@ -291,7 +316,7 @@ string code = (*el).first; CString name = (*el).second; writer.Key(code.c_str()); - writer.String(StringUtil::cstring2String( name).c_str()); + writer.String(StringUtil::cstring2String(name).c_str()); } writer.EndObject(); const char* json_content = buf.GetString(); -- Gitblit v1.8.0