Qt自启动信息写入注册表
bool OperationAutoStart(int operation)
{
QString appName = QApplication::applicationName();
QString application_path = QApplication::applicationFilePath();
application_path.replace("/", "\\");
application_path = "\"" + application_path + "\" auto";
std::shared_ptr<QSettings> reg = std::make_shared<QSettings>(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
QString val = reg->value(appName).toString();
switch (operation) {
case 0:
reg->remove(appName);
break;
case 1:
if (val != application_path) {
reg.setValue(appName, "\"\"");
reg->setValue(appName, application_path);
}
break;
case 2:
if (val.compare(application_path) == 0) {
reg->deleteLater();
return true;
}
else {
reg->deleteLater();
return false;
}
break;
default:
reg->deleteLater();
return false;
}
return false;
}