C++Qt开机自启动

文章目录

方法一:注册表

cpp 复制代码
#include <QtCore/QCoreApplication>
#include <QtCore/QSettings>
#include <QtCore/QDebug>
#include <QtCore/QProcess>

int main(int argc, char *argv[])
{
	QCoreApplication app(argc, argv);

    // 获取当前程序的路径
    QString appPath = QCoreApplication::applicationFilePath();
	appPath.replace("/", "\\");
	appPath = "\"" + appPath + "\"";
    // 设置开机自启动
    QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
    settings.setValue("MyApp", QVariant(appPath));

    // 查看是否设置成功
    qDebug() << "Is auto start enabled?" << settings.contains("MyApp");

    // 取消开机自启动
    settings.remove("MyApp");

    // 查看是否取消成功
    qDebug() << "Is auto start disabled?" << !settings.contains("MyApp");
}

设置的启动项路径字符串需包含双引号 " " ,否则无效、开机无法自启动!!!

方法二:快捷方式到自启动目录

复制代码
//获取当前windows登录的用户名
std::string GetWindowsUserName()
{
  const int MAX_LEN = 100;
  char szBuffer[MAX_LEN];
  DWORD len = MAX_LEN;
  if (GetUserName(szBuffer, &len))
    return szBuffer;
  else
    return "";
}

int main(int argc, char *argv[])
{
  std::string str = GetWindowsUserName();
  //自启动目录
  QString shortcutFilePath = "C:/Users/" + QString::fromStdString(str) + "/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/" + "ZH500.lnk";
  //exe文件目录
  QString appPath = QCoreApplication::applicationFilePath();
  QFile fApp(appPath);
  fApp.link(shortcutFilePath);	//生成快捷方式
}

获取更多Linux C/C++资料

相关推荐
Ada's2 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885722 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪3 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
倔强的石头1064 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
传人once4 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
NeilYuen4 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
蜗牛互联网5 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
郝学胜_神的一滴5 小时前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
All for pursuit.5 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
weixin_307779135 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab