【发布时间】:2010-01-13 13:15:33
【问题描述】:
使用 Inno Setup 创建的安装程序可以通过 /LOADINF 选项读取 INI 文件。是否可以通过此 INI 文件读取自定义变量?是否有一个函数可以获取使用此选项给出的 INI 文件的名称? (然后可以使用 INI 实用程序函数。)
【问题讨论】:
标签: inno-setup ini
使用 Inno Setup 创建的安装程序可以通过 /LOADINF 选项读取 INI 文件。是否可以通过此 INI 文件读取自定义变量?是否有一个函数可以获取使用此选项给出的 INI 文件的名称? (然后可以使用 INI 实用程序函数。)
【问题讨论】:
标签: inno-setup ini
代码
ExpandConstant('{param:LoadInf}')
从命令行参数提供文件 INI 文件名。
如果 INF 文件位于 setup 文件夹中,请使用此代码
AddBackslash(ExpandConstant('{src}')) + ExpandConstant('{param:LoadInf}');
【讨论】:
我们只需使用ParamStr(i) 函数遍历命令行参数,并查找以“/LOADINF=”开头的参数,然后从中提取文件名。
我们最初遇到的一个问题是文件名可能是相对路径描述符(例如,只是文件名)。但是,如果您使用压缩,则当前工作目录将是您的 %TEMP% 文件夹中的某个子文件夹,而不是您的 setup.exe 所在的目录。因此,您应该确保检测到这一点,并在必要时在给定的文件名前加上AddBackslash(ExpandConstant('{src}'))。
【讨论】: