在NSIS卸载程序欢迎页面中添加一个复选框

时间:2013-10-18 19:38:57

标签: nsis uninstaller mui nsdialogs

我正在尝试在我的NSIS卸载程序的欢迎屏幕上添加一个复选框,但我找不到示例。从documentation for MUI2我找不到任何可以在欢迎页面上运行的自定义函数。

根据我发现的文档和其他answer,看起来完成页面更容易定制。

有没有办法自定义欢迎页面?如果没有,完成意图的其他选择是什么?

1 个答案:

答案 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