在Qt程序内部实现开机启动设置和取消的功能。实际上是通过设置/取消注册表中的开机启动项来实现。
本文使用了setAutoStart
函数,传入软件的绝对路径以及标志位来设置或取消开机启动。本文还提供了函数checkIfAutoStart() 来判断进程是否设置为开机启动。
值得注意的是,使用
QApplication::applicationFilePath()
而不是QApplication::applicationName()
来传递参数,以确保开机启动路径正确。
1 实现开机启动函数
#include <QSettings>
#include <QFileInfo>
#include <QDir>
/*******************************
* 功能:设置/取消 进程开机自动启动函数
* 参数:
flag: 设置/取消自启动标志位,1为设置,0为取消,默认为设置
*******************************/
#define AUTO_RUN_REGISTRY_PATH "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"
void setAutoStart(bool flag)
{
QString application_name = QApplication::applicationName();//获取应用名称
QSetti