windows卸载qt_Qt 获取当前计算机已安装的软件(注册表方式)

本文介绍了如何通过Qt读取Windows注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\来获取已安装软件的显示名称和卸载路径,以此来获取计算机上安装的软件信息。
摘要由CSDN通过智能技术生成

前言

最近在写一些关于获取本机信息的函数,大多数获取方式都可以通过调用 windows 开发的 API 得到,当前Qt也有封装一写 API 可以直接获取到计算机的信息,如获取主机名只用:QHostInfo::localHostName()可以获取到。除了这两种方式还有一种就是用注册表方式获取,但是这种方式有个弊端就是,有些软件并不会写入注册表,所以注册表就获取不到,今天我们的获取计算机软件信息就是这样滴。

正文开始

软件基本信息获取最主要用到的注册表是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

软件卸载信息中包含: DisplayName(显示名称)/DisplayIcon(显示标题)/UninstallString(卸载路径),今天文章主要用到的就是: DisplayName(显示名称)。

关键代码

QString GetDevInfos::getSoftware()

{

QString regStr = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"

QSettings settings(regStr, QSettings::NativeFormat);

QStringList regGroups = settings.childGroups();

foreach (QString regItem , regGroups)

{

settings.beginGroup(regItem);

QString displayName = settings.value("DisplayName").toString();

QString uninstallString = settings.value("UninstallString").toString();

if(!displayName.isEmpty())

{

qDebug() << "[" << __FUNCTION__ <<__line__ : displayname uninstallstring>

}

settings.endGroup();

}

return "";

}

代码执行结果

[ GetDevInfos::getSoftware 105 ] : "护眼宝 3.1" "C:\\Program Files (x86)\\护眼宝\\uninst.exe"

[ GetDevInfos::getSoftware 105 ] : "网易有道词典" "D:\\Youdao\\Dict\\uninst.exe"

IT宅个人博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:Qt 获取当前计算机已安装的软件(注册表方式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值