Bri*_*ell 19 installer inno-setup pascalscript
我正在使用InnoSetup创建一个安装程序,并在一个[Code]部分中编写一些自定义处理程序.在其中一个处理程序中,我希望能够检索AppName该[Setup]部分中定义的(或者,可能是其他参数的值)的值.有没有办法让我这样做?我看过文档,但我没有找到任何可以让我这样做的东西.我们的InnoSetup文件实际上是由我们的构建过程生成的,它将所有程序和程序特定的片段拼接在一起,因此必须在代码中为每个程序定义常量是不方便的.有没有方便的方法呢?
我正在寻找类似的东西
MyString := ExpandConstant('{AppName}');
Run Code Online (Sandbox Code Playgroud)
除了{AppName}不是定义的常数.有没有办法查询该[Setup]部分中定义的参数?
Bri*_*ell 21
受到Craig的回答的启发,我正在查看Inno Setup预处理器文档(在ISTool中,据我所见,在网上不可用),并且SetupSetting在预处理器中遇到了该函数.
它可以这样使用:
MyString := '{#SetupSetting("AppName")}';
Run Code Online (Sandbox Code Playgroud)
只要该[Setup]部分出现在使用它的地方之前(ISPP似乎只有一个通道),并包含一个定义AppName,这将给出我想要的结果,而不必为我们想要的每个设置定义额外的宏提取.
Cra*_*een 15
它是构建时常量,而不是安装时值.因此,您可以使用Inno Setup Preprocessor附件来定义此类常量.(您可以通过QuickStart包轻松安装).
定义常量:
#define AppName "Excellent Foo App"
Run Code Online (Sandbox Code Playgroud)
使用常量[Setup]:
AppName={#AppName}
Run Code Online (Sandbox Code Playgroud)
在Pascal代码中,我不完全确定语法,但是类似于:
MyString := {#AppName}
Run Code Online (Sandbox Code Playgroud)
更新:我意识到我的一个脚本使用{#emit SetupSetting("AppId")}更容易.Brian的解决方案也发现了这种方法,并且更好.
| 归档时间: |
|
| 查看次数: |
15469 次 |
| 最近记录: |