项目优化之开机自启动
目录
一、项目背景
二、开机自启动原理
三、QSettings设置开机自启动代码
四、注意事项
一、项目背景
在停车项目中,很多车场终端都是无人值守,如果车场突然断电或终端死机重启客户端软件必须在终端重启时尽快运行,尽快恢复对车场的管控;因此开机自启动功能很有必要。
二、开机自启动原理
windows系统中可以在注册表中设置开机自启动,该功能注册表路径如下:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
只需要将我们需要将我们的客户端程序注册到改路径下即可实现客户端随系统启动而自动拉起。
三、QSettings设置开机自启动代码
QSettings 可以很方便的访问系统的注册表,进行注册表的设置和读取,一下是设置开机自启动的程序代码。
int Test2015::SetISCAutoRun(bool bAutoFlag)
{
#ifdef Q_OS_WINconst QString regKey("ISC_5_2");QSettings autoRunsettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat);bool bExist = autoRunsettings.contains(regKey);if (bAutoFlag && bExist) //开机不启动{autoRunsettings.remove(regKey);}if (bAutoFlag && !bExist){QString st = qApp->applicationFilePath();QString ss = st.replace(QString("/"), QString("\\"));autoRunsettings.setValue(regKey, "\"" + ss + "\"");}
#endifreturn 0;
}
四、注意事项
访问注册表需要管理员权限,设置程序管理员权限如下所示:
在64位电脑上运行的32位程序,可能会被重定向到注册表的 WOW6432Node 节点下,如下所示。