我正在使用InnoSetup创建安装程序,并在[Code]
部分中编写了一些自定义处理程序。在其中一个处理程序中,我希望能够检索AppName
部分中定义的[Setup]
的值(或者可能是其他参数的值)。我有办法吗?我看过了documentation,但是还没有找到任何可以执行此操作的东西。我们的InnoSetup文件实际上是由我们的构建过程生成的,该过程将我们所有程序之间通用且特定于程序的片段拼接在一起,因此为每个程序在代码中定义常量将很不方便。有什么方便的方法吗?
我正在寻找类似的东西
MyString := ExpandConstant('{AppName}');
除了
{AppName}
不是定义的常数。有什么方法可以查询[Setup]
部分中定义的参数? 最佳答案
这是一个构建时间常数,而不是安装时间值。因此,您可以使用Inno Setup Preprocessor附加组件来定义此类常量。 (您可以通过QuickStart pack轻松安装它)。
定义常量:
#define AppName "Excellent Foo App"
在
[Setup]
中使用常量:AppName={#AppName}
在Pascal代码中,我不太确定语法,但是类似:
MyString := {#AppName}
更新:我意识到我的一个脚本使用了
{#emit SetupSetting("AppId")}
,这更容易。 Brian's solution也发现了这种方法,并且效果更好。