При создании на стандартной финишной странице отмеченного чекбокса ( MUI_FINISHPAGE_RUN ), для запуска после установки (т.е. после закрытия PAGE_FINISH) чего либо ,
чтобы этого запуска не было, сначала надо снять отметку с чекбокса, а потом кликнуть Finish.
Иногда это не преемлемо и мешает управлению событиями...
Но
на FINISHPAGE можно активировать кнопку "Cancel", нажатие которой, закроет страницу
без запуска чего либо, даже если чекбокс отмечен.
Код:
![Выделить весь код](images/misc/selectcode.png)
OutFile "FinishCancelEnabled_test.exe"
!include MUI2.nsh
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
#Do NOT use MUI_FINISHPAGE_CANCEL_ENABLED !
!define MUI_FINISHPAGE_RUN "$windir\explorer.exe"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW CancelEnabled
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
!ifndef SC_CLOSE
!define SC_CLOSE 0xF060
!endif
Function CancelEnabled
EnableWindow $mui.Button.Cancel 1
System::Call 'USER32::GetSystemMenu(i $hwndparent,i0)i.s'
System::Call 'USER32::EnableMenuItem(is,i${SC_CLOSE},i0)'
FunctionEnd
Section
SectionEnd