按名称问题获取卸载应用程序路径
Get uninstall application path by name issue
我想从注册表中按应用程序名称获取应用程序卸载路径。
法典:
QString Test::getAppUninstallPath(QString name)
{
QString uninstallLocation;
QStringList allCurrentUserKeys;
QSettings registryKeyCurrentUser("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", QSettings::NativeFormat);
allCurrentUserKeys = registryKeyCurrentUser.allKeys();
for (QString key : allCurrentUserKeys) {
if (key.contains("DisplayName")) {
if (registryKeyCurrentUser.value(key).toString() == name) {
uninstallLocation = registryKeyCurrentUser.value("UninstallString").toString();
}
}
}
return uninstallLocation;
}
它不返回任何内容。如何获取应用程序的卸载路径?谢谢。
感谢hskoglund。因为我正在处理层次结构/嵌套键,所以我应该使用beginGroup()
/endGroup()
.
法典:
QString uninstallLocation;
QSettings registryKeyLM("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", QSettings::NativeFormat);
auto allGroups = registryKeyLM.childGroups();
for (auto group : allGroups)
{
registryKeyLM.beginGroup(group);
for (auto key : registryKeyLM.childKeys())
if ("DisplayName" == key)
if (registryKeyLM.value(key) == name)
uninstallLocation = registryKeyLM.value("UninstallString").toString();
registryKeyLM.endGroup();
}
return uninstallLocation;
相关文章:
- WinAPI C++如何从 64 位应用程序加载资源
- 通知 Windows 系统应用程序字体已被卸载/删除
- .NET核心应用程序无法加载C++DLL
- 将文件从 iOS 应用程序加载到 C++ 对象中/<iostream>iOS 上的问题
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- 使用 C++ dll 运行 c# 应用程序会生成无法加载异常
- 为什么我的 C# 应用程序无法加载我的 C++ dll?
- 应用程序仅在qt调试器中加载dll,而不是独立加载
- 按名称问题获取卸载应用程序路径
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- 在 cab 应用程序卸载时将文件保存在文件夹中
- 为什么我的MFC应用程序在打开/运行时也不显示消息就被卸载了
- 如何在不终止主应用程序的情况下卸载 ActiveX 的 ocx 以允许覆盖 ocx?
- 卸载应用程序域不清除C++ COM 对象静态成员
- 正在加载一个程序集,该程序集与加载应用程序目录之外的目录中的其他程序集具有相关性
- 如果在WM/CE平台中用于卸载,DMProcessConfigXML将关闭正在运行的应用程序
- 检测应用程序何时在Windows中被卸载
- UnookWindowsHookEx是否从特定于线程的挂钩应用程序中卸载库
- 在Windows启动时加载应用程序
- 从主应用程序中卸载子窗口