我正在使用
InnoSetup创建一个安装程序,并在[代码]部分中编写一些自定义处理程序.在其中一个处理程序中,我希望能够检索[Setup]部分中定义的AppName(或潜在的其他参数的值)的值.有办法让我这样做吗?我看过
documentation,但我没有发现任何让我这样做的东西.我们的InnoSetup文件实际上是由我们的构建过程生成的,它将我们所有程序之间共同的片段拼接在一起,这是程序特定的,所以在每个程序的代码中定义常量是不方便的.有没有办法这样做?
我正在寻找类似的东西
MyString := ExpandConstant('{AppName}');
除了{AppName}不是定义的常量.有没有办法查询[Setup]部分中定义的参数?
解决方法
这是一个构建时常数,而不是安装时间值.所以你可以使用
Inno Setup Preprocessor加载项来定义这样的常量. (您可以通过
QuickStart pack轻松安装).
定义常数:
#define AppName "Excellent Foo App"
在[设置]中使用常量:
AppName={#AppName}
而在Pascal代码中,我并不完全确定语法,而是类似于:
MyString := {#AppName}
更新:我意识到我的一个脚本使用{#emit SetupSetting(“AppId”)}更容易. Brian’s solution也发现了这种方法,而且更好.