C++ 读取注册表值
时间: 2023-07-11 09:05:54 浏览: 242
可以使用 Windows API 中的 RegOpenKeyEx 和 RegQueryValueEx 函数来读取注册表中的值,以下是一个简单的示例代码:
```cpp
#include <windows.h>
#include <iostream>
int main()
{
HKEY hKey;
TCHAR szBuffer[512];
DWORD dwBufferSize = sizeof(szBuffer);
LONG lRet;
// 打开注册表键
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"), 0, KEY_READ, &hKey);
if (lRet != ERROR_SUCCESS) {
std::cout << "Failed to open registry key." << std::endl;
return 1;
}
// 读取键值
lRet = RegQueryValueEx(hKey, TEXT("ProductName"), nullptr, nullptr, reinterpret_cast<LPBYTE>(szBuffer), &dwBufferSize);
if (lRet != ERROR_SUCCESS) {
std::cout << "Failed to read registry value." << std::endl;
return 1;
}
// 输出结果
std::wcout << L"Product Name: " << szBuffer << std::endl;
// 关闭键句柄
RegCloseKey(hKey);
return 0;
}
```
此示例代码打开了注册表中的 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion` 键,然后读取了其中的 `ProductName` 值。需要注意的是,如果你想在 64 位系统中读取 32 位程序的注册表值,需要使用 `Wow6432Node` 路径。
阅读全文