设置自启动
由于项目要求Qt的程序实现开机自动启动功能,本人在网上找了一下,成功运行,在这里分享一下。
首先说一下我自己的配置:Ubuntu 18.04 ,Qt5.14.2(其他版本也可)
#define APPNAME "app"
//设置开机自启动
void set_autostart()
{
QString app_name = APPNAME;
QCoreApplication::applicationDirPath() ;
//拷贝文件并赋权限
QString desktop_dir = QCoreApplication::applicationDirPath()+"/"+app_name+".desktop && chmod 777 /etc/xdg/autostart/"+app_name+".desktop"
QString cmd = "pkexec cp " + desktop_dir + " /etc/xdg/autostart/"+app_name+".desktop";
std::string str = cmd.toStdString();
const char *cmd_cs = str.c_str();
system(cmd_cs);
}
关闭开机自启动
#define APPNAME "app"
void rm_autostart()
{
QString app_name = APPNAME;
//删除文件夹中的对应文件
QString cmd = "pkexec rm /etc/xdg/autostart/"+app_name+".desktop";
std::string str = cmd.toStdString();
const char *cmd_cs = str.c_str();
system(cmd_cs);
}
检查是否开机自启动
#define APPNAME "app"
void check_autostart()
{
QString app_name = APPNAME;
QFileInfo file("/etc/xdg/autostart/"+app_name+".desktop");
if(file.exists()==false)
{
set_autostart();
// check_autostart();
}
}