相关项目:https://github.com/beiklive/PopupClock 一个小伙伴报出的这个问题。
检查后发现该QT程序通过注册表开机自启动的方式启动时,会无法读取配置文件,使用手动启动的方式可以正确读取文件。
查阅资料后得知
程序通过注册表设置为开机启动后,因为开机启动的指令其实也是CMD的指令,所以,如果我们在代码中使用以下代码获取程序路径,其实获取到的是CMD程序的运行路径,也就是C:\Windows\System32
,所以找不到相对路径的文件。
解决方法:
随后进行拼接即可QString appPath = QApplication::applicationFilePath();
C++QString curPath = QCoreApplication::applicationDirPath();
QFile file(curPath + filePath);
本文作者:beiklive
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!