目录
关于注册表
用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);