我用QSettings阅读了注册表。我想读的关键是:
HKEY_LOCAL_MACHINE \ SYSTEM \ Setup \ Source OS(2015年8月1日02:45:41更新)
由于键名 Source OS (Updated on 8/1/2015 02:45:41)
是动态的,我只需打开
QSettings settings("HKEY_LOCAL_MACHINE\\SYSTEM\\Setup", QSettings::NativeFormat);
并通过settings.childGroups()递归运行并使用以下代码构建我的密钥:
QString key = settings.fileName() + "\\" + settings.group();
但结果是:
\ HKEY_LOCAL_MACHINE \ SYSTEM \ Setup \ Source OS(更新于8 \ 1 \ 2015 02:45:41)
正如您所看到的,斜杠现在是反斜杠,我无法区分名称和路径。
知道为什么QSettings会将斜杠转换为反斜杠吗?
答案 0 :(得分:1)
来自QSettings documentation:
请勿在部分或键名中使用斜杠(
'/'
和'\'
);反斜杠字符用于分隔子键(见下文)。在'\'
窗口上QSettings
转换为'/'
,这使它们相同。
通常,动态注册表项名称的概念并不是那么好。我认为更好的方法是在密钥中创建两个单独的值 - Source OS
和Updated On
值。