如何在NSIS脚本中继续安装时隐藏页面

时间:2011-12-22 01:47:09

标签: nsis

我在NSIS中为我的应用程序安装了工作安装程序。它有几个页面,如许可证,目录,安装文件和完成。 现在我想要做的是,隐藏所有页面,但根据某些条件继续安装。 我尝试使用Abort / MUI_PAGE_CUSTOMFUNCTION_PRE,但它终止了进一步的安装。 这里有什么指示?

3 个答案:

答案 0 :(得分:1)

您必须跳过预回拨中的页面:

!include FileFunc.nsh
!include LogicLib.nsh
!include MUI2.nsh
!define MUI_PAGE_CUSTOMFUNCTION_PRE maybeskippages
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE maybeskippages
!insertmacro MUI_PAGE_LICENSE "${__FILE__}"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Var SkipPages
Function .onInit
${GetParameters} $0
${GetOptions} "$0" "/Skip"  $1
${IfNot} ${Errors}
    StrCpy $SkipPages 1
${EndIf}
FunctionEnd

Function maybeskippages
${If} $SkipPages > 0 
    Abort
${EndIf}
FunctionEnd

答案 1 :(得分:0)

您可以在SetSilent silent函数中使用.onInit来隐藏UI。或者你可以使用MUI_PAGE_CUSTOMFUNCTION_PRE钩子函数和ShowWindow。

答案 2 :(得分:0)

在MUI_PAGE_CUSTOMFUNCTION_SHOW中使用Abort跳过此页面。

也许你可以尝试NSIS论坛,有很多类似的问题,你得到更快的答案。