ProgramFiles中的安装路径:一些问题

时间:2017-05-18 14:03:16

标签: c++ qt program-files

我正在使用Qt 5 C ++开发适用于Windows(XP到10及更高版本)的软件。截至目前,默认安装路径位于C:\Users\Public\Kontiki。 但是,我读到这可能不是一个好习惯,我宁愿在C:\ProgramFiles\Kontiki安装它。 这就是我打算做的事情。

但是,我有两个主要问题。

关注1

我的安装文件夹中的文件包含.exe,.dll和文档。 但是,它还包括用户参数(.txt文件)。用户必须能够在程序中使用GUI更改这些参数。问题是当我的软件在ProgramFiles时,由于他们无权在ProgramFiles中写入,因此无法完成此操作。我应该做的是将.txt参数文件放在AppData中。所以我要做的是:

  1. 在安装时(使用NSIS安装程序),我会将.txt参数文件写入$APPDATA
  2. 在我的Qt程序中,我将使用QStandardPaths::AppDataLocation访问这些.txt参数 所有这些都表明我担心的是我不确定NSIS安装程序$APPDATA的路径是否始终与Qt使用QStandardPaths::AppDataLocation返回的路径相同。例如,可能在新版本的Windows上会出现一些差异或其他问题。也许这不是一个合法的问题,但我想验证。
  3. 关注2

    如果程序安装在ProgramFiles中,我是否可能遇到UAC问题(例如,如果用户不是管理员)或其他什么问题?

    非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果程序安装在ProgramFiles中,用户可以执行程序而不会出现任何问题(无论管理员状态如何)。

但是如果应用程序必须更新任何文件(在你的情况下是.txt文件),那么用户帐户中的任何目录都是个好地方。大多数应用程序使用Documents文件夹来处理此类情况。

而且ProgramFiles目录并非特定于用户。

可能好的方法是为要放置要更新的文件的目录创建用户环境变量(对于任何意外情况都很容易修改)。以编程方式读取NSIS文件和应用程序中的环境变量并使用它。

环境变量ex:

PROJECTDIR - C:\ Users((USERID))\ Documents \ projectDir