您的位置:首页 > 编程语言

读写注册表的示例代码(待更新)

2016-01-11 13:28 501 查看
使用

m_fullPathApp = ReadStringFromHKLM(L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\公司 XXX", L"MainProgramLocation");
if (m_fullPathApp.empty())
return false;

64位系统下你的32位app读写的注册表位置实际是放在Wow6432Node节点,win32
api会根据你的app类型自动重定向注册表位置。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\公司 XXX

实现

std::wstring ReadStringFromHKLM(const std::wstring &path, const std::wstring &key)
{
HKEY hOpen;
wchar_t buf[255];
memset(buf, 0, sizeof(buf));
DWORD size;
if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, path.c_str(), 0, KEY_READ, &hOpen))
{
RegQueryValueEx(hOpen, key.c_str(), NULL, NULL, (BYTE*)buf, &size);
}
RegCloseKey(hOpen);

return buf;
}在WinXP下使用RegQueryValueExA会读取不到字符串,得使用RegQueryValueEx这个函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: