Inno 设置用户主路径
Posted
技术标签:
【中文标题】Inno 设置用户主路径【英文标题】:Inno Setup User Home Path 【发布时间】:2013-07-15 14:15:00 【问题描述】:我希望我的安装程序将一些文件放入用户主路径(Windows %USERPROFILE% 环境变量指向的路径,以及 Qt 的 QDir::homePath() 返回的路径)。
我查看了Inno Setup Constants 页面,但找不到我要查找的路径。
【问题讨论】:
你不应该将文件放在用户配置文件目录的根目录下。 另外,安装程序(每台机器安装,这是默认设置)无论如何都不应该在每用户文件夹中写入文件。把它留给应用程序。 @ZippyV 我认为一般禁止某事是不对的。我想添加必须添加到 HOME/.ssh/ 文件夹的 ssh 密钥,如果它不存在,我也想从 inno 设置中创建这个文件夹,所以我认为可能有合法的需求。 @zadane 如果其他用户启动您的应用程序会发生什么?即使您别无选择(因为 SSH 的不良行为),您仍然不应该在安装期间这样做,因为其他用户也可能使用您的应用程序。 【参考方案1】:使用环境变量%USERPROFILE
或。%HOMEPATH
更新
正如 Martin 在 cmets 中指出的那样,不应使用 %HOMEPATH
,因为它没有磁盘名称(例如,\Users\username
)。
【讨论】:
如何扩展这些变量? 不是HOMEPATH
! HOMEPATH
变量值类似于\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
。以上是关于Inno 设置用户主路径的主要内容,如果未能解决你的问题,请参考以下文章