Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用QSettings读取windows上的注册表值_Windows_Qt_Registry_Qsettings - Fatal编程技术网

正在使用QSettings读取windows上的注册表值

正在使用QSettings读取windows上的注册表值,windows,qt,registry,qsettings,Windows,Qt,Registry,Qsettings,我正在尝试使用QSettings从windows注册表读取MachineGuid项 那把钥匙的地址是 “HKEY\U本地\U计算机\软件\微软\加密技术” 我将QSettings与QSettings::Native标志一起使用,如下所示 QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",QSettings::NativeFormat); 我可以从regedit.exe中看到所有子文件夹及其键和M

我正在尝试使用QSettings从windows注册表读取MachineGuid

那把钥匙的地址是

“HKEY\U本地\U计算机\软件\微软\加密技术”

我将QSettingsQSettings::Native标志一起使用,如下所示

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",QSettings::NativeFormat);
我可以从regedit.exe中看到所有子文件夹及其键和MachineGuid的值,但是QSettingsvalue功能似乎工作不正常

settings.childKeys();
结果如下:

settings.value("MachineGuid").toString();
返回空的QString

settings.childGroups();
正确返回加密文件夹的所有子文件夹

settings.childKeys();
返回一个空的QStringList

settings.allKeys();
返回Cryptography文件夹中的所有密钥,包括除放置在Cryptography中的
MachineGuid
之外的所有子文件夹中的密钥

我使用的是在Windows10上使用VisualStudio2015静态构建的Qt5.7.1


我尝试过使用Window.h头的代码,并成功地提取了值,但这种方法的问题是我必须向发布的软件中添加大量DLL。

对于使用32位编译代码访问64位Windows操作系统,正确的格式应该是“
Registry64Format
”如果从64位编译器访问32位操作系统,正确的格式是“
Registry32Format
” 因此,在我的例子中,将format设置为64位之后,就可以提取密钥了

使用32位编译代码在64位操作系统上读取键“MachineGuid”

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",
QSettings::Registry64Format);
auto key = settings.childKeys().at(0);

嘿,Mohammad,谢谢你的回答,但我想你必须亲眼看看,如果你点击MachineGuid上的加密,它就会出现在你的regedit的右侧,而不是一个组。问题是,密码术包含一个密钥和一组组组作为密钥children@mostafaTmj不,我的系统里没有钥匙哦。。。我以为每个windows机器都有这里提到的那把钥匙,这里是另一个机器油的例子,末尾有一张图片哦,对不起,我现在可以看到了!但我知道问题所在!