原因:界面启动完成,但是资源加载失败:引用下放具体原因分析(比我分析透彻多了!)
Qt6 程序开机自启找不到配置文件及外部程序_qt软件开机自启无法打开其它程序_DreamLife.的博客-CSDN博客
解决方法:
软件直接设置路径到注册表,自启后软件的路径就变成了从c盘开始的,之前文件夹里面的资源不是绝对路径就找不到对象。现在的话我是每次打开时创建了一个和程序同名的快捷方式在这个目录里面,由于快捷方式指向的是绝对路径,所以打开的对应程序就可以找到资源!
引用同事奇思妙想-解决方法:
//设置开机自启
bool selfTurnOn = true;
QSettings reg("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
QString application_name = QApplication::applicationName();
QString application_path = QCoreApplication::applicationFilePath();
if (selfTurnOn) {
//设置开机自启注册表
application_path.replace(".exe", ".lnk");
if (!QFile::exists(application_path)) {
QFile::link(QCoreApplication::applicationFilePath(), application_name + ".lnk");
}
QString strAppPath = QDir::toNativeSeparators(application_path);
reg.setValue(application_name, strAppPath);
}
else {
//取消开机自启注册表
reg.remove(application_name);
}