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)。

【讨论】:

如何扩展这些变量? 不是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

以上是关于Inno 设置用户主路径的主要内容,如果未能解决你的问题,请参考以下文章

linux获取用户主目录的绝对路径

linux下如何设置命令的默认路径

inno做的插件, 如何通过注册表获取到主程序安装路径?

在 Inno Setup 中运行 schtask.exe 之前使用安装路径创建 XML 任务文件

linux下如何设置命令的默认路径

Inno Setup Compiler“找不到指定的路径”错误,路径长