我正在尝试在我的NSIS卸载程序的欢迎屏幕上添加一个复选框,但我找不到示例。从documentation for MUI2我找不到任何可以在欢迎页面上运行的自定义函数。
根据我发现的文档和其他answer,看起来完成页面更容易定制。
有没有办法自定义欢迎页面?如果没有,完成意图的其他选择是什么?
答案 0 :(得分:2)
您链接到的MUI(1)文档中有一个关于如何在pre / show回调中自定义欢迎页面的说明。使用MUI2,您可以在show callback中添加控件。有关这些自定义控件的详细信息,请参见nsDialogs文档...
!include MUI2.nsh
!insertmacro MUI_PAGE_INSTFILES
!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.ModifyUnWelcome
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.LeaveUnWelcome
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE English
Var mycheckbox ; You could just store the HWND in $1 etc if you don't want this extra variable
Function un.ModifyUnWelcome
${NSD_CreateCheckbox} 120u -18u 50% 12u "Do something special"
Pop $mycheckbox
SetCtlColors $mycheckbox "" ${MUI_BGCOLOR}
${NSD_Check} $mycheckbox ; Check it by default
FunctionEnd
Function un.LeaveUnWelcome
${NSD_GetState} $mycheckbox $0
${If} $0 <> 0
MessageBox mb_ok "I'm special"
${EndIf}
FunctionEnd
Section testuninstaller
Initpluginsdir
WriteUninstaller "$pluginsdir\u.exe"
ExecWait '"$pluginsdir\u.exe" _?=$pluginsdir'
Sectionend