我想通过读取HKEY_CURRENT_USER的卸载注册表文件来列出所有已安装的应用程序。但看起来不能使用QSettings来完成,由于某些安全原因(我猜测)。
QSettings maya("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
人们建议在Windows平台上使用WinAPI来实现这一点。
请问有人可以指导我如何添加和使用这个库吗?谢谢
我想通过读取HKEY_CURRENT_USER的卸载注册表文件来列出所有已安装的应用程序。但看起来不能使用QSettings来完成,由于某些安全原因(我猜测)。
QSettings maya("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
人们建议在Windows平台上使用WinAPI来实现这一点。
请问有人可以指导我如何添加和使用这个库吗?谢谢
为了获取Windows注册表中“卸载”下所有子项目的列表,您需要使用QSettings :: childGroups()
函数,即:
为了获得Windows注册表中“卸载”下所有子项的列表,您需要使用QSettings::childGroups()
函数,例如:
QSettings m("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
QSettings::NativeFormat);
QStringList ak = m.childGroups();
这将返回所有已安装应用程序的列表。
更新:
获取已安装应用程序的列表后,可以阅读安装详细信息。有两种方法可以做到这一点。例如,要读取“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();