Skipping Pages

From NSIS Wiki
Jump to navigationJump to search

To skip a built-in page, use Abort in the pre callback function. To skip a custom page, simply don't call the plug-in that shows the page, or use Abort in custom page function.

To define a pre callback function, use the Page command. For example:

Name skip
OutFile skip.exe
 
InstallDir $TEMP
 
Page license
Page custom customPage
Page components
Page directory dirPre
Page instfiles
 
Section
SectionEnd
 
Function customPage
MessageBox MB_YESNO "Skip custom page?" IDNO noskip
	Abort
noskip:
StartMenu::Select "This is a custom page"
Pop $0
FunctionEnd
 
Function dirPre
MessageBox MB_YESNO "Skip directory page?" IDNO noskip
	Abort
noskip:
FunctionEnd

When using the Modern UI, use the MUI_PAGE_CUSTOMFUNCTION_PRE define. For example:

!include "MUI2.nsh"
 
Name skip
OutFile skip.exe
 
InstallDir $TEMP
 
!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\license.txt"
!insertmacro MUI_PAGE_COMPONENTS
!define MUI_PAGE_CUSTOMFUNCTION_PRE dirPre
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
 
!insertmacro MUI_LANGUAGE "English"
 
Section "Main Section" SECTION1
...
SectionEnd
 
Function dirPre
  ${Unless} ${SectionIsSelected} ${SECTION1}
    Abort
  ${EndUnless}
FunctionEnd