QT 关于注册表操作QSettings,以及卸载程序uninstall.exe处理方法

目录

关于注册表

Qt操作注册表

​编辑

可能出现问题

权限不够

删除文件无法删除自身

参考资料


关于注册表

用cmd命令regedit就可以打开注册表

 打开完我们可以看到当前配置信息

Qt操作注册表

Qt操作注册表类是QSettings,所以要添加头文件#include <QSettings>,因为注册表是目录树结构因此我们可以对其操作allKeys、applicationName、childGroups、childKeys等操作

//获取注册表
QString getRegValue(
    QString &strPath, QString strItemName)
{
    QSettings reg(strPath, QSettings::NativeFormat);
    return (reg.value(strItemName).toString());
}

//写入注册表
void setRegValue(
    QString strPath, QString strItemName, QString strItemData)
{
    QSettings reg(strPath, QSettings::NativeFormat);
    reg.setValue(strItemName, strItemData);
    set->sync();
}

//删除注册表
void delRegValue(
    QString strPath, QString strItemName)
{
    QSettings reg(strPath, QSettings::NativeFormat);
    if (strItemName != nullptr)
    {
        reg.remove(strItemName);
    }
    else
    {
        //如果想删除目录 clear()
        reg.remove(strPath);
    }
}

// 例子比如我在注册表里添加卸载操作
const QString strUninstall="HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
const QString strPublisher = "Publisher";
const QString strDisplayName = "DisplayName";
const QString strDisplayIcon = "DisplayIcon";
const QString strDisplayVersion = "DisplayVersion";
const QString strInstallLocation = "InstallLocation";
const QString strUninstallString = "UninstallString";
strAppPath = "注册表文件名称";
QString strAppName = QStringLiteral("exe名称");
QString strAppIcon = "exe名称位置";
QString strAppVersion = 版本;    

//写入卸载信息
QString strUninstall(strUninstall);
strUninstall += strAppPath;
setRegValue(strUninstall, strDisplayName, strAppName);
setRegValue(strUninstall, strDisplayIcon, strAppIcon);
setRegValue(strUninstall, strDisplayVersion, strAppVersion);
setRegValue(strUninstall, strPublisher, "Neewer");
setRegValue(strUninstall, strUninstallString, strAppIcon);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路奇怪

有钱出钱,没钱多出编程主意啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值