开机自启
在一些特殊场合我们需要自己的软件进行开机自行启动,开机自启原理就是在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run位置加一个键值,而这个键值就是当前程序的启动路径。
void MainWindow::appAutoRun(bool bAutoRun)
{
QString application_name = QApplication::applicationName();
QSettings *settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
if(bAutoRun)
{
QString application_path = QApplication::applicationFilePath();
settings->setValue(application_name, application_path.replace("/", "\\"));
}
else
{
settings->remove(application_name);
}
delete settings;
}
因为当前程序是对注册表进行操作,所以需要进行提权。以管理员运行也可以解决问题,但每次以管理员运行相对复杂,所以最好需要提权程序。