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

如何在NSIS脚本中继续安装时隐藏页面,nsis,Nsis,我在NSIS中为我的应用程序安装了可用的安装程序。它有几个页面,如许可证、目录、安装文件和完成。 现在我想做的是,隐藏所有页面,但根据某些条件继续安装。 我尝试使用Abort/MUI\u PAGE\u CUSTOMFUNCTION\u PRE,但它终止了进一步的安装。 这里有指针吗?您可以使用函数中的设置silent silent。onInit来隐藏UI。或者您可以使用MUI\u页面\u CUSTOMFUNCTION\u PREhook函数,也可以使用ShowWindow。在MUI\u页面\u

我在NSIS中为我的应用程序安装了可用的安装程序。它有几个页面,如许可证、目录、安装文件和完成。 现在我想做的是,隐藏所有页面,但根据某些条件继续安装。 我尝试使用Abort/MUI\u PAGE\u CUSTOMFUNCTION\u PRE,但它终止了进一步的安装。
这里有指针吗?

您可以使用
函数中的
设置silent silent
。onInit
来隐藏UI。或者您可以使用
MUI\u页面\u CUSTOMFUNCTION\u PRE
hook函数,也可以使用ShowWindow。

在MUI\u页面\u CUSTOMFUNCTION\u SHOW中使用中止跳过此页面


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

你必须跳过预回调中的页面:

!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

您是否在instfiles页面上中止了?@Anders:我在PRE function for license页面中中止了。@Anders:我尝试在MUI_page\u CUSTOMFUNCTION\u SHOW中使用中止,安装是正确的,但仍然显示了页面。在继续安装时,是否有其他方法隐藏页面?我尝试在MUI_PAGE_CUSTOMFUNCTION_SHOW中使用Abort,但仍然显示页面。在继续安装时是否有其他方法隐藏页面?以下是我尝试的代码:!定义MUI_页面_自定义函数_显示NoWizardFunc_显示!insertmacro MUI\u页面\许可证$(MUILicense)!定义MUI_页面_自定义函数_显示NoWizardFunc_显示!insertmacro MUI_PAGE_INSTFILES函数NoWizardFunc_SHOW MessageBox MB_OK“$NOWIZARD”${IF}$NOWIZARD==1 Abort${ENDIF}请给出示例,我没有得到您的anwser。我尝试使用SetSilent,但没有成功。我还尝试了MUI_PAGE_CUSTOMFUNCTION_SHOW和MUI_PAGE_CUSTOMFUNCTION_PRE以及Abort,但没有成功。正如您所建议的,我在PRE回调中中止了,它跳过了页面,但没有安装。基本上我想要的是安装应该是静默的.“安装没有发生”是什么意思?您是在使用Section/o还是有其他一些逻辑可以取消选中Section?尝试添加一个仅包含MessageBox的分区。。。