Qt 注册表操作

一.操作环境

二.注册表查看

1. 搜索注册表打开

2. 注册表查看

例如我想操作 计算机\HKEY_CURRENT_USER\SOFTWARE\winzq\qwert下的内容

三.代码

1. H文件

cpp 复制代码
#ifndef __REGISTER_H__
#define __REGISTER_H__

#include <QString>
#include <QSettings>
#include <QStringList>
#include <QDebug>
#include "../qaesencryption/qaesencryption.h"


#define LIST_DATE1                  "date1"
#define LIST_DATE2                  "date2"
#define LIST_SYSTEM_MODE            "mode"
#define LIST_DEVICE_MODEL           "device_model"
#define REGPATH                     "HKEY_CURRENT_USER\\Software\\winzq\\qwert"//创建的注册表路径



void set_regedit(QString keyname, QString regvalue);//写注册表
void remov_regedit(QString keyname);
QString get_regedit_numb(QString keyname);//读注册表值

#endif // TEST_H

2.CPP

cpp 复制代码
#include "registry_key.h"


/**
* @brief 向注册表写入值
* @param keyname:键值
* @param regvalue:数据
* @retval None
*/
void set_regedit(QString keyname, QString regvalue)
{
    QSettings *writeReg = new QSettings(REGPATH, QSettings::NativeFormat); // 初始化QSettings对象
    writeReg->setValue(keyname, regvalue); // 写入注册表值
    delete writeReg; // 释放QSettings对象
}


/**
* @brief 从注册表读取值
* @param keyname:键值
* @retval None
*/
QString get_regedit_numb(QString keyname)
{
    QSettings *ReadReg = new QSettings(REGPATH, QSettings::NativeFormat); // 初始化QSettings对象
    QString value = ReadReg->value(keyname).toString(); // 读取注册表值
    delete ReadReg; // 释放QSettings对象

    return value;
}

/**
* @brief 删除注册表
* @param keyname:键值
* @retval None
*/
void remov_regedit(QString keyname)
{
    QSettings *writeReg = new QSettings(REGPATH, QSettings::NativeFormat); // 初始化QSettings对象
    writeReg->remove(keyname);
    delete writeReg; // 释放QSettings对象
}

四.操作实例

cpp 复制代码
#define LIST_DATE1                  "date1"
#define REGPATH                     "HKEY_CURRENT_USER\\Software\\winzq\\qwert"//创建的注册表路径

1.读取

cpp 复制代码
QString key_data1 = get_regedit_numb(LIST_DATE1);

2.写入

写入的同时会自己创建注册表

cpp 复制代码
set_regedit(LIST_DATE1, "123123");

3.删除

cpp 复制代码
remov_regedit(LIST_DATE1);
相关推荐
std787927 分钟前
Rust 与 Go – 比较以及每个如何满足您的需求
开发语言·golang·rust
报错小能手33 分钟前
python(入门)map内置函数及import模块导入,as别名
开发语言·人工智能·python
梵得儿SHI41 分钟前
Java 反射机制实战:对象属性复制与私有方法调用全解析
java·开发语言·java反射机制的实际应用·对象属性复制·反射调用私有方法·私有字段·类型兼容性和敏感字段忽略
sulikey43 分钟前
C++的STL:深入理解 C++ 的 std::initializer_list
开发语言·c++·stl·list·initializerlist·c++标准库
liu****1 小时前
19.map和set的封装
开发语言·数据结构·c++·算法
孤廖1 小时前
C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
linux·服务器·开发语言·c++·人工智能·后端·深度学习
润 下1 小时前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生
朝新_1 小时前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
前端架构师-老李1 小时前
Java开发—JDK的安装和版本管理(macOS)
java·开发语言·macos
懂得节能嘛.2 小时前
【动态配置中心】Java+Redis构建动态配置中心
java·开发语言·redis