#ifdef Q_OS_WIN
QString startMenuPath = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation)
.append("/Startup"); //获取开始菜单的路径,QStandardPaths是个好东西!
QString checkPath = startMenuPath + "/CLIENT.lnk"; //开始菜单路径
QFile file(checkPath);
QDir dir(startMenuPath);
if(dir.exists()) //判断开始菜单路径是否存在
{
if(!file.exists()) //判断是否已经创建快捷,不存在则创建
{
//获取软件所在路径,带文件名
QString application_path = QApplication::applicationFilePath();
//创建快捷
QFile::link(application_path, startMenuPath.append("/").append("CLIENT.lnk"));
}
}
#else
#endif
这个是windows的,win 10,win 7测试通过。试过修改注册表,但是不知道为什么修改注册表的能自启,但是不加载背景资源,不知道是不是权限问题,有知道的大神可以在评论留言哦,欢迎指教
PS:如果用修改注册表方式开机自启的,要把所有资源都放在QT的资源文件中才能正常读取,应该是权限问题,如果是配置文件可以写到AppData的Roaming里面去,这里面的文件可以正常读取。