问题描述
我要读取"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography",
QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",NativeFormat);
QString value = settings.value("MachineGuid", "").toString();//读
得到个值为空。
解决办法
最后在 stackoverflow上找到了解决办法。
改为
QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",
QSettings::Registry64Format);
就好了。
原因是: NativeFormat 参数只有在程序跟系统版本一致的时候才行。
如果程序是32位,系统是64位,就要专门指定了。
而我的系统是win10 64位,因此改一下就好了。
本文介绍了一种使用QSettings在Qt中读取Windows注册表时遇到的问题及解决方案。当尝试读取HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography下MachineGuid值时,使用NativeFormat格式会返回空值。文章详细解释了问题原因,并提供了解决方案,即通过指定QSettings::Registry64Format来正确读取64位系统上的注册表。

1107

被折叠的 条评论
为什么被折叠?



