0

我正在为静默安装程序尝试 NSIS 文档示例,here。取消注释该行

; SilentInstall silent

那么是的,我的安装程序是沉默的。但是,它会显示消息框。即使安装程序处于静默状态,预计也会出现消息框。为了使消息框也静音,必须为每个消息框使用 /SD 选项。示例脚本在这里提出:

MessageBox MB_OK|MB_ICONINFORMATION "This is not a silent installer" /SD IDOK

使消息框静音的另一种方法是公开的:它检查是否静音。如果不显示,则向前跳两行(所以不显示消息框)

IfSilent 0 +2
    MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer'

第二个解决方案对我不起作用。如果我将安装程序设置为静默,则会出现带有“这是静默安装程序”的框。如果我改变它

MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' /SD IDOK

该消息未出现。

为什么会跳进去

IfSilent 0 +2

不工作?+3也没有成功。

4

2 回答 2

8

就像 zbynour 说的那样,你把参数弄混了。

为避免相对跳转问题,请使用 logiclib:

!include LogicLib.nsh

...

${IfNot} ${Silent}
  MessageBox ...
${EndIf}
于 2012-11-16T16:48:45.867 回答
3

因为在静默安装的情况下,第一个参数偏移跳转(第二个为非静默)。

试试这个:

IfSilent +2 0
于 2012-11-16T11:45:51.583 回答