编辑
2022-12-31
过往问题
00
请注意,本文编写于 657 天前,最后修改于 387 天前,其中某些信息可能已经过时。

image.png

相关项目:https://github.com/beiklive/PopupClock 一个小伙伴报出的这个问题。


检查后发现该QT程序通过注册表开机自启动的方式启动时,会无法读取配置文件,使用手动启动的方式可以正确读取文件。

查阅资料后得知 程序通过注册表设置为开机启动后,因为开机启动的指令其实也是CMD的指令,所以,如果我们在代码中使用以下代码获取程序路径,其实获取到的是CMD程序的运行路径,也就是C:\Windows\System32,所以找不到相对路径的文件。

解决方法:

  1. 使用绝对路径
  2. 使用QT的获取程序路径的函数
    QString appPath = QApplication::applicationFilePath();
    随后进行拼接即可
    C++
    QString curPath = QCoreApplication::applicationDirPath(); QFile file(curPath + filePath);

本文作者:beiklive

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!