0

我正在使用 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 All this 访问这些 .txt 参数,以说明我担心的是我不确定 NSIS 安装程序的路径$APPDATA是否总是与 Qt 返回的路径相同QStandardPaths::AppDataLocation。例如,也许在新版本的 Windows 上会有一些差异或其他东西。也许这不是一个合法的问题,但我想验证一下。

关注 2

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

非常感谢你的帮助!

4

1 回答 1

0

如果程序安装在 中ProgramFiles,用户可以毫无问题地执行程序(无论管理员状态如何)。

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

而且ProgramFiles目录不是特定于用户的。

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

环境变量例如:

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

于 2017-05-18T19:11:57.733 回答