QT之读写注册表
本文讲述了QT的注册表一些简单操作,包括创建、读取、写入等操作。直接贴代码,供大家参考。
头文件如下:
#ifndef TEST_H
#define TEST_H
#include"qstring.h"
#define keyname "key"//创建的注册表名称
#define regPath "HKEY_CURRENT_USER\\Software"//创建的注册表路径
#define initial_key "0"//默认初始的值
class TEST
{
public:
TEST();
void detection_regrdit();//注册表检测
void set_regedit(QString regvalue);//写注册表
QString get_regedit_numb();//读注册表值
};
#endif // TEST_H
源文件如下:
#include "test.h"
#include"qsettings.h"
TEST::TEST()
{
}
void TEST::detection_regrdit()//
{
bool have_key=false;
QSettings *programReg=new QSettings(regPath,QSettings::NativeFormat);//文件路径存在则打开,不存在则创建
QStringList keys = programReg->allKeys();//读取目录下所有键值
for(int i = 0 ; i < keys.size();i++){//检测注册表键是否存在,不存在就创建
QString id = keys.at(i);
if(id.contains(keyname))
{
have_key=true;
break;
}
}
if(have_key==false)//如果不存在,创建
{
set_regedit(initial_key);//写注册表
}
delete programReg;
QString regvalue = get_regedit_numb();//读取注册表值
set_regedit(regvalue);//写注册表
}
void TEST::set_regedit(QString regvalue)//写注册表
{
QSettings *writeReg=new QSettings(regPath,QSettings::NativeFormat);//文件路径存在则打开,不存在则创建
writeReg->setValue(keyname, regvalue);//写注册表
delete writeReg;
}
QString TEST::get_regedit_numb()//读注册表值
{
QSettings *ReadReg=new QSettings(regPath,QSettings::NativeFormat);//文件路径存在则打开,不存在则创建
QString value=ReadReg->value(keyname).toString();//读注册表
delete ReadReg;
return value;
}
这里用到了QSettings进行注册表的相关操作。
首先打开要创建的注册表目录,如果该目录不存在,就会进行创建;然后会读取目录下的所有键值对,检测自己想要的键值对是否存在,如果不存在,再进行创建,并赋初值;如果存在的话直接进行读取操作;后面的写入操作其实和创建操作是一样的,这里我没有改变注册表值,直接又做了写入,实际应用时一般会赋其他的值。
以上就是关于注册表的一些相关操作。
如果觉得这篇文章对您有帮助,欢迎点赞、评论、转发、收藏!您的支持是我创作的最大动力!