当前位置: 首页 > article >正文

QT 如何判断电脑已安装某个软件

如何判断Windows电脑是否已经安装了某个软件?一般而言,通过安装包形式安装的软件,都会把卸载信息写入到注册表,本文正是通过读取注册表的方式来判断是否已安装了该款软件,详见下面代码:

#include <QCoreApplication>
#include <QSettings>
#include <QDebug>

bool is64bitOperatingSystem()
{
    return sizeof(void *) == 8;
}

//如果返回不为空则表示已安装
QString HasInstall(const QString &softName)
{
    QString header = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
    bool is64bit = is64bitOperatingSystem();
    if(is64bit){
        header = "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
    }

    QSettings settings(header, QSettings::NativeFormat);
    QStringList regGroups = settings.childGroups();
    foreach (QString regItem, regGroups)
    {
        settings.beginGroup(regItem);
        QString displayName = settings.value("DisplayName").toString();
        QString installPath = settings.value("InstallLocation").toString();
        QString uninstallString = settings.value("UninstallString").toString();
        if(displayName.contains(softName))
        {
            QString filePath = installPath.replace("\\", "/");
            return filePath;
        }
        settings.endGroup();
    }
    return "";
}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //
    QString path = HasInstall("Chemiluminescence");
    qDebug() << "path" << path;
    //
    return a.exec();
}


http://www.kler.cn/a/320793.html

相关文章:

  • 躺平成长-人工智能进行编程-(12)
  • 计算机网络在线测试-概述
  • Python爬虫项目 | 一、网易云音乐热歌榜歌曲
  • LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程
  • 推荐15个2024最新精选wordpress模板
  • 树状数组+概率论,ABC380G - Another Shuffle Window
  • ffmpeg常用命令大全
  • 记一次sql查询优化
  • 《深度学习》ResNet残差网络、BN批处理层 结构、原理详解
  • JavaScript优化性能的几个方法和技巧
  • 人工智能-大语言模型-微调技术-LoRA及背后原理简介
  • HarmonyOS鸿蒙开发实战(5.0)自定义安全键盘场景实践
  • C++面向对象基础
  • 学习CubeIDE——外设中断开发
  • C++中的typeid使用方法
  • Mac优化清理工具CleanMyMac X 4.15.6 for mac中文版
  • c++:set和map
  • 脉冲式投币器与售货机主板RS232连接WF-700B适配器介绍
  • 程序编译的四个阶段
  • python 异步读取文件,速度变快了吗
  • Linux Centos7达梦8数据库安装说明(附安装包,超详细图文!)收藏这一篇就够了!
  • 基于quill2.0的富文本编辑器,Fluent Editor,支持表格,图片,表情等
  • 中间添加一条可以拖拽的分界线,来动态调整两个模块的宽度
  • 如何在调试状态下部署局域网网站
  • Qt C++设计模式->外观模式
  • 牛骨髓油茶,美味不可错过