我在NSIS中为我的应用程序安装了工作安装程序。它有几个页面,如许可证,目录,安装文件和完成。 现在我想要做的是,隐藏所有页面,但根据某些条件继续安装。 我尝试使用Abort / MUI_PAGE_CUSTOMFUNCTION_PRE,但它终止了进一步的安装。 这里有什么指示?
答案 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论坛,有很多类似的问题,你得到更快的答案。