一、注册表是什么?
我的理解注册表是windows系统的数据库,保存着硬件、系统和软件正常运行的各种配置参数,在工业软件中有个重要的应用场景就是license的保存,对软件的开启就可以做一个校验作用,判断软件的使用者的合法性
二、使用方法
新增一个settings类,注意Windows的注册表,需要重新打开才能看刷新的到
初始化
代码如下:
// 第一种创建方式 生成在HKEY_CURRENT_USER\\Software 在这可以写上自己的公司名称和项目名称
m_reg = new QSettings("MyHomeWork", "MyApplication_new");
//第二种创建方式
m_reg = new QSettings("HKEY_CURRENT_USER\\Software\\MyHomeWork\\MyApplication_new", QSettings::NativeFormat);
1.增加注册表
代码如下:
m_reg->setValue("License","9876564321");
2.删除注册表
代码如下:
m_reg->remove("License");
3.修改注册表
代码如下:
m_reg->setValue("License","777777777");
4.查找注册表
代码如下:
QString string = m_reg->value("License").toString();
三、 整体代码
- setting.cpp
#include "settings.h"
#include "ui_settings.h"
#include <QDebug>
Settings::Settings(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Settings)
{
ui->setupUi(this);
// 第一种创建方式 生成在HKEY_CURRENT_USER\\Software
//m_reg = new QSettings("MyHomeWork", "MyApplication_new");
//第二种创建方式
m_reg = new QSettings("HKEY_CURRENT_USER\\Software\\MyHomeWork\\MyApplication_new", QSettings::NativeFormat);
}
Settings::~Settings()
{
if(m_reg != nullptr){
delete m_reg;
}
delete ui;
}
void Settings::on_addBtn_clicked()
{
m_reg->setValue("License","9876564321");
}
void Settings::on_rmBtm_clicked()
{
m_reg->remove("License");
}
void Settings::on_chBtn_clicked()
{
if(m_reg->value("License") != ""){
m_reg->setValue("License","777777777");
}
}
void Settings::on_pushButton_4_clicked()
{
QString string = m_reg->value("License").toString();
qDebug() << string;
}
- setting.h
#ifndef SETTINGS_H
#define SETTINGS_H
#include <QMainWindow>
#include <QSettings>
namespace Ui {
class Settings;
}
class Settings : public QMainWindow
{
Q_OBJECT
public:
explicit Settings(QWidget *parent = 0);
~Settings();
private slots:
void on_addBtn_clicked();
void on_rmBtm_clicked();
void on_chBtn_clicked();
void on_pushButton_4_clicked();
private:
Ui::Settings *ui;
QSettings *m_reg;
};
#endif // SETTINGS_H
四、总结
这里我们就可以直接从注册表中拿到我们想要的数据,比如License进行认证操作
版权声明:本文为qq_40062917原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。