I have added a checkbox successfully to nsis installer's finish page defining functions for MUI_PAGE_CUSTOMFUNCTION_PRE
and MUI_PAGE_CUSTOMFUNCTION_SHOW
in finish page using MUI
.
But if I include MUI2
instead of MUI
, the check box is not displayed. I suppose there is something different in MUI2
than MUI
with respect to this. I could not find documentation on that an if anyone knows that, can I please know???
Thank you
MUI1 uses InstallOptions for the Welcome and Finish pages and MUI2 uses nsDialogs.
This is documented in the MUI2 readme:
The welcome and finish page are no longer implemented using InstallOptions. Instead, the new nsDialogs plug-in is used. nsDialogs allows you to create custom pages or customize existing pages directly from the script.
Edit: Customize the page by using the nsDialogs commands in the show callback:
var Checkbox
Function MyFinishShow
${NSD_CreateCheckbox} 120u 110u 100% 10u "&Something"
Pop $Checkbox
SetCtlColors $Checkbox "" "ffffff"
FunctionEnd
Function MyFinishLeave
${NSD_GetState} $Checkbox $0
${If} $0 <> 0
MessageBox mb_ok "Custom checkbox was checked..."
${EndIf}
FunctionEnd
!define MUI_FINISHPAGE_RUN "calc.exe" ;See note after the code...
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyFinishShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyFinishLeave
!insertmacro MUI_PAGE_FINISH
Or if you are not using the existing finish page checkboxes, you can use those for custom stuff without using the show callback...
来源:https://stackoverflow.com/questions/6531115/customizing-an-exsisting-nsis-mui2-page