qt winodws和linux开机启动

windows

windows中写入开机启动的地方有两种,第一种是应用于整个计算机,但是需要管理员权限,第二种是应用于计算机的当前用户,一般写入第二种就可以了

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
//开机启动写入注册表当中“HKEY_CURRENT_USER”不需要管理员权限所以写在此项当中
#ifdef Q_OS_WIN //判断系统是windows还是linux
QSettings *reg = new QSettings(“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”, QSettings::NativeFormat);
QString appName = QApplication::applicationName();
QString appPath = QDir::toNativeSeparators(QCoreApplication::applicationFilePath());
if (checked)
{
reg->setValue(appName, appPath);
}
else
{
reg->remove(appName);
}
delete reg;
#endif

//linux
原理和操作
在 /etc/xdg/autostart 目录下存放着开机自启动的“快捷方式”(.desktop)文件,我们可以为自己程序写一个.desktop文件,然后放到这里来,实现开机自启动。
在程序所在的文件夹下创建一个*.desktop的文件,名称可以自己起,后缀为.desktop。
.desktop文件制作(注意最后的权限问题):https://blog.csdn.net/u011198687/article/details/121806095?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0-121806095-blog-86176905.pc_relevant_antiscanv2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
两个命令:
sudo cp .desktop /etc/xdg/autostart/
sudo rm -f /etc/xdg/autostart/
.desktop

//启动时检查一下autostart 中是否有这个文件
QString linux_appName = AppName;
QFileInfo file(“/etc/xdg/autostart/”+linux_appName);
if(file.exists())
{
ui->startPowerOnCheckbox->setChecked(true);
}
else
{
ui->startPowerOnCheckbox->setChecked(false);
}

/* 开机启动的设置和删除 */
//etc/xdg/autostart 是linux的文件启动位置
QString linux_appName = AppName; //这里的AppName我在上面定义了一个宏
QString set_uos_PowerOn = “pkexec cp /opt/apps/cn.bigant.im/entries/applications/” + linux_appName +" “+”/etc/xdg/autostart";
QString removePowerOn = “pkexec rm -f /etc/xdg/autostart/” + linux_appName;
if(checked)
{
system(set_uos_PowerOn.toLatin1());
}
else
{
system(removePowerOn.toLatin1());
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 上设置 qt 程序开机启动需要在系统启动时执行相应的命令。这可以通过在 /etc/rc.local 文件中添加相应的命令来实现。 1. 使用管理员权限打开 /etc/rc.local 文件。 2. 在 exit 0 前添加以下命令: ``` /usr/bin/qt-path/your-program & ``` 3. 保存并关闭文件 4. 重启系统,确认程序是否已经自动启动。 注意: qt-path 是 qt 程序所在的路径,your-program 是程序的名称。 ### 回答2: Linux系统可以通过一些简单的设置来实现开机启动Qt程序。该过程需要分为两个步骤:首先是编写启动脚本,然后设置该脚本在启动时自动执行。下面是具体的步骤: 一、编写启动脚本 1. 创建一个新的脚本文件,例如:startup.sh 2. 在脚本文件中添加以下内容: ```bash #!/bin/bash export DISPLAY=:0.0 /path/to/your/application exit 0 ``` 其中,`/path/to/your/application`表示需要启动Qt程序路径。 3. 保存并退出脚本文件。 4. 授予该脚本文件可执行权限。可以使用以下命令: ``` chmod +x startup.sh ``` 二、设置开机启动 1. 打开终端并输入: ``` sudo nano /etc/rc.local ``` 2. 将以下内容添加到文件末尾,但在`exit 0`行之前: ```bash sudo -u [username] /path/to/startup.sh & ``` 其中,`[username]`应替换为你的用户名(可通过`whoami`命令获得),`/path/to/startup.sh`应替换为你的启动脚本的完整路径。 3. 保存并退出文件。 4. 重新启动计算机以测试是否成功。 总结:以上为Linux开机启动Qt程序的步骤,可以通过编写启动脚本和设置开机启动实现。如果执行正确,Qt程序将在计算机启动时自动运行。 ### 回答3: 在Linux系统上,通过将Qt程序添加到系统自动启动列表中,可以让程序在开机时自动启动运行。 下面是具体步骤: 1.打开Qt程序所在的目录,找到程序的可执行文件 2.创建一个.desktop文件,格式如下: [Desktop Entry] Type=Application Name=程序名称 Exec=/path/to/程序可执行文件 Icon=/path/to/程序图标 3.将.desktop文件存储在/etc/xdg/autostart目录下 sudo cp 程序.desktop /etc/xdg/autostart 4.重启电脑即可。 需要注意的是,为了让.desktop文件能够成功启动程序,需要确保程序的启动命令和.desktop文件中的路径及名称保持一致。同时,启动程序时可能需要管理员权限,可以在Exec命令前添加sudo以确保程序以root权限启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值