我正在使用Qt 5 C ++开发适用于Windows(XP到10及更高版本)的软件。截至目前,默认安装路径位于C:\Users\Public\Kontiki
。
但是,我读到这可能不是一个好习惯,我宁愿在C:\ProgramFiles\Kontiki
安装它。
这就是我打算做的事情。
但是,我有两个主要问题。
我的安装文件夹中的文件包含.exe,.dll和文档。
但是,它还包括用户参数(.txt文件)。用户必须能够在程序中使用GUI更改这些参数。问题是当我的软件在ProgramFiles
时,由于他们无权在ProgramFiles
中写入,因此无法完成此操作。我应该做的是将.txt参数文件放在AppData
中。所以我要做的是:
$APPDATA
QStandardPaths::AppDataLocation
访问这些.txt参数
所有这些都表明我担心的是我不确定NSIS安装程序$APPDATA
的路径是否始终与Qt使用QStandardPaths::AppDataLocation
返回的路径相同。例如,可能在新版本的Windows上会出现一些差异或其他问题。也许这不是一个合法的问题,但我想验证。如果程序安装在ProgramFiles
中,我是否可能遇到UAC问题(例如,如果用户不是管理员)或其他什么问题?
非常感谢你的帮助!
答案 0 :(得分:0)
如果程序安装在ProgramFiles
中,用户可以执行程序而不会出现任何问题(无论管理员状态如何)。
但是如果应用程序必须更新任何文件(在你的情况下是.txt文件),那么用户帐户中的任何目录都是个好地方。大多数应用程序使用Documents
文件夹来处理此类情况。
而且ProgramFiles
目录并非特定于用户。
可能好的方法是为要放置要更新的文件的目录创建用户环境变量(对于任何意外情况都很容易修改)。以编程方式读取NSIS文件和应用程序中的环境变量并使用它。
环境变量ex:
PROJECTDIR - C:\ Users((USERID))\ Documents \ projectDir