在QT中读取window的注册表

2024-02-15

我想列出通过从 HKEY_CURRENT_USER 读取卸载注册表文件来安装的所有应用程序。但出于某种安全原因(我猜),看起来不能通过使用 QSettings 来完成。

QSettings maya("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall

人们建议使用 WinAPI 来完成此任务(至少在 Window 平台上)

有人可以指导我如何添加和使用此链接吗? 感谢


为了获取 Windows 注册表中“卸载”项下的所有子项的列表,您需要使用QSettings::childGroups()函数,即:

QSettings m("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
            QSettings::NativeFormat);
QStringList ak = m.childGroups();

这将返回所有已安装应用程序的列表。

UPDATE:

获取已安装应用程序的列表后,可以阅读安装详细信息。有两种方法可以做到这一点。例如,要读取“Autodesk Maya 2014”应用程序的“UinstallPath”键:

m.beginGroup("Autodesk Maya 2014");
QString path = m.value("UninstallPath").toString();
m.endGroup();

或者简单地:

QString path = m.value("Autodesk Maya 2014/UninstallPath").toString();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在QT中读取window的注册表 的相关文章

随机推荐