gpt4 book ai didi

windows - 使用 QSettings 在 Windows 上读取注册表值

转载 作者:可可西里 更新时间:2023-11-01 11:44:10 32 4
gpt4 key购买 nike

我正在尝试使用 QSettings 从 Windows 注册表中读取 MachineGuid 键。

该 key 的地址是

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography".

我正在使用带有 QSettings::Native 标志的 QSettings,如下所示。

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",QSettings::NativeFormat);

我可以从 regedit.exe 查看所有子文件夹及其键和 MachineGuid 的值,但 value 函数QSettings 似乎无法正常工作。

结果如下:

settings.value("MachineGuid").toString();

返回空 QString。

settings.childGroups();

正确返回 Cryptography 文件夹的所有子文件夹。

settings.childKeys();

返回一个空的 QStringList

settings.allKeys();

返回 Cryptography 文件夹内的所有 key ,包括所有子文件夹内的 key ,但放置在 Cryptography 内的 MachineGuid 除外。

我使用的是在 Windows 10 上使用 Visual Studio 2015 静态构建的 Qt 5.7.1。

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

最佳答案

对于使用 32 位编译代码访问 64 位 Windows 操作系统,正确的格式是“Registry64Format”,如果从 64 位编译器访问 32 位操作系统,正确的格式是“Registry32Format"因此,在我的例子中,将格式设置为 64 位后,可以获取 key 。

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

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

关于windows - 使用 QSettings 在 Windows 上读取注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50189724/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com