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

来源:互联网 发布:淘宝店铺店名怎么改 编辑:程序博客网 时间:2024/05/15 13:37

使用

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这个函数。

0 0
原创粉丝点击