C++ 读写注册表
#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h> #include <iostream> using std::cout; using std::endl; HKEY OpenKey(HKEY hRootKey, wchar_t* strKey) { HKEY hKey; LONG nError = RegOpenKeyEx(hRootKey, strKey, NULL, KEY_ALL_ACCESS, &hKey); if (nError==ERROR_FILE_NOT_FOUND) { cout << "Creating registry key: " << strKey << endl; nError = RegCreateKeyEx(hRootKey, strKey, NULL, NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey, NULL); } if (nError) cout << "Error: " << nError << " Could not find or create " << strKey << endl; return hKey; } void SetVal(HKEY hKey, LPCTSTR lpValue, DWORD data) { LONG nError = RegSetValueEx(hKey, lpValue, NULL, REG_DWORD, (LPBYTE)&data, sizeof(DWORD)); if (nError) cout << "Error: " << nError << " Could not set registry value: " << (char*)lpValue << endl; } DWORD GetVal(HKEY hKey, LPCTSTR lpValue) { DWORD data; DWORD size = sizeof(data); DWORD type = REG_DWORD; LONG nError = RegQueryValueEx(hKey, lpValue, NULL, &type, (LPBYTE)&data, &size); if (nError==ERROR_FILE_NOT_FOUND) data = 0; // The value will be created and set to data next time SetVal() is called. else if (nError) cout << "Error: " << nError << " Could not get registry value " << (char*)lpValue << endl; return data; } int main() { static DWORD v1, v2; HKEY hKey = OpenKey(HKEY_LOCAL_MACHINE,L"SOFTWARE\\MyCompany"); v1 = GetVal(hKey, L"Value1"); v2 = GetVal(hKey, L"Value2"); v1 += 5; v2 += 2; SetVal(hKey, L"Value1", v1); SetVal(hKey, L"Value2", v2); RegCloseKey(hKey); return 0; }
CopyFrom: http://www.cplusplus.com/forum/windows/58636/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步