经常有一些软件会涉及到要求开机启动之类的,下面我们使用这么一段代码来实现写和删除注册表,目的是实现开机启动和删除开机启动!
//读配置文件信息,以方便控制注册表的写和删除
QString iniFilePath = QApplication::applicationDirPath() + "/argsetting.ini";
QSettings argSetting(iniFilePath, QSettings::IniFormat);
//从配置文件读取信息
bool isAutoRun = argSetting.value("autoRun", 1).toBool();
//建立一个对象写或删注册表的QSettings
QSettings *settings =new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
QString strValue = settings->value("app").toString();
//查看注册表是否已经写入程序名称
bool flag = (strValue == (QApplication::applicationFilePath()));
if(isAutoRun&&!flag)
{
//写入注册表信息(名字和路径)
settings->setValue("app", QApplication::applicationFilePath());
}
else if(!isAutoRun&&flag)
{
//删除注册表信息
settings->remove(tr("app"));
}
delete settings;