标题:Qt 读取注册表,读取错误
作者:tfx181512
日期:2020-06-02 14:42
内容:
QString strRegPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
QSettings* pSettings = new QSettings(strRegPath, QSettings::NativeFormat);
QStringList groupList = pSettings->childGroups();
for each (QString groupin groupList)
{
pSettings->beginGroup(group);
QString softwareName = pSettings->value("DisplayName", "").toString();
pSettings->endGroup();
}
delete pSettings;读取到的值一直是“HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall”下的,我项读取的是“HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall”
#1 [dbzhang800 06-02 17:45]
你用的是32bit的Qt吧?换成64bit的
#2 [20091001753 06-07 00:16]
http://www.qtcn.org/bbs/read-htm-tid-45657.html
如果注册表的值,有斜杠或反斜杠,那么你需要用 WINAPI 来读取。
或者简单来说,读取注册表,你还是直接用 WINAPI 吧。
#3 回 20091001753 的帖子 [fsu0413 06-20 18:39]
20091001753:http://www.qtcn.org/bbs/read-htm-tid-45657.html
如果注册表的值,有斜杠或反斜杠,那么你需要用 WINAPI 来读取。
或者简单来说,读取注册表,你还是直接用 WINAPI 吧。 (2020-06-07 00:16)
感觉这种的带WOW6432Node的就算用Windows API也一样会被跳转吧。。。。
64位系统下32位程序的处理是在Windows API中耦合的,绕不过去
#4 回 fsu0413 的帖子 [fsu0413 06-20 18:45]
fsu0413:感觉这种的带WOW6432Node的就算用Windows API也一样会被跳转吧。。。。
64位系统下32位程序的处理是在Windows API中耦合的,绕不过去
(2020-06-20 18:39)
刚看到了一种方法,也是用Windows API,不过要加flag