如何读取 Pascal 代码中
[Setup]
部分(即 Uninstallable
)中设置的参数?
我之所以需要知道生成的软件包是否可卸载,是因为就绪页面上显示的信息(Windows“添加/删除”显示中的软件包名称)。如果包裹是
Uninstallable=no
,那么该信息没有意义,所以我不应该在就绪页面上显示它!
非常感谢您的任何提示!
SetupSetting
预处理器函数 在脚本的其他位置发出 Setup
节指令(Code
或不):
[Setup]
Uninstallable=no
[Code]
...
if '{#SetupSetting('Uninstallable')}' = 'yes' then ...
这会导致:
if 'no' = 'yes' then ...
相关问题:如何在[Code]部分使用Inno Setup预处理器指令?
虽然我实际上发现你的解决方案更好。但为了类型安全并避免诸如区分大小写的比较或引用值之类的问题,我会这样做:
#define Uninstallable false
[Setup]
Uninstallable={#Uninstallable ? "yes" : "no"}
[Code]
...
if {#Uninstallable ? 'True' : 'False'} then ...
这会提高效率:
if False then ...
或者实际上,如果您只是想跳过整个代码块,请执行以下操作:
[Code]
...
#if Uninstallable
// Do something
#endif
这会导致没有代码,当不是“可卸载”时,效率更高,并且还减少了安装程序的大小。
然后更常见的是只测试预处理器定义是否存在:
//#define Uninstallable
[Setup]
#ifndef Uninstallable
Uninstallable=no
#endif
[Code]
...
#ifdef Uninstallable
// Do something
#endif
我的“问题”可以通过以下方式解决:
#define uninstallable "no"
...
[Setup]
...
Uninstallable="{#uninstallable}"
...
[code]
...
if {#uninstallable} = 'yes' then ...
有了这个
uninstallable
在帕斯卡代码中就已知了。不是很优雅但可能。我还想知道[Setup]
中的参数是否可以从pascal代码中读取?