【问题标题】:Inno Setup User Home PathInno 设置用户主路径
【发布时间】:2013-07-15 14:15:00
【问题描述】:

我希望我的安装程序将一些文件放入用户主路径(Windows %USERPROFILE% 环境变量指向的路径,以及 Qt 的 QDir::homePath() 返回的路径)。

我查看了Inno Setup Constants 页面,但找不到我要查找的路径。

【问题讨论】:

  • 你不应该将文件放在用户配置文件目录的根目录下。
  • 另外,安装程序(每台机器安装,这是默认设置)无论如何都不应该在每用户文件夹中写入文件。把它留给应用程序。
  • @ZippyV 我认为一般禁止某事是不对的。我想添加必须添加到 HOME/.ssh/ 文件夹的 ssh 密钥,如果它不存在,我也想从 inno 设置中创建这个文件夹,所以我认为可能有合法的需求。
  • @zadane 如果其他用户启动您的应用程序会发生什么?即使您别无选择(因为 SSH 的不良行为),您仍然不应该在安装期间这样做,因为其他用户也可能使用您的应用程序。

标签: windows qt installation inno-setup


【解决方案1】:

使用环境变量{%USERPROFILE} {%HOMEPATH}

更新

正如 Martin 在 cmets 中指出的那样,不应使用 {%HOMEPATH},因为它没有磁盘名称(例如,\Users\username)。

【讨论】:

  • 如何扩展这些变量?
  • 不是HOMEPATHHOMEPATH 变量值类似于\Users\username。路径中没有驱动器。所以它不会做你想要的,除非你从C:驱动器运行安装程序。您只想使用USERPROFILE 变量,就像C:\Users\username
【解决方案2】:

对于用户特定的应用程序数据,您应该使用指向应用程序数据文件夹的常量{userappdata}。在这个位置,您可以为您的应用程序创建一个文件夹来存储用户特定的文件。

【讨论】:

  • 尽管这不能直接回答这里提出的问题,但我还是投了赞成票,因为这是真的,对于用户特定的应用程序数据,应该使用{userappdata} 常量指向的文件夹。
【解决方案3】:

来自@Andreas 的更新,假设您有一个包含内容的文件并且需要将其设置为用户主目录

1)C:\Users\sun\Desktop\.appcfg_nag:

opt_in: false
timestamp: 0.0

2) InnoSetup 你可以像下面这样复制粘贴:

[Files]
Source: "C:\Users\sun\Desktop\.appcfg_nag"; DestDir: "{%HOMEPATH}"; Flags: ignoreversion

现在,.appcfg_nag 文件将位于C:\Users\sun\.appcfg_nag

【讨论】:

  • HOMEPATH 变量类似于\Users\username。路径中没有驱动器。因此,除非您从C: 驱动器运行安装程序,否则您的输入将无法执行您想要的操作。你想要USERPROFILE 变量,就像C:\Users\username
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多