2

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

根据我找到的文档和其他答案,看起来完成页面更容易定制。

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

4

1 回答 1

2

您链接到的 MUI(1) 文档有一个关于如何在预/显示回调中自定义欢迎页面的说明。使用 MUI2,您可以在显示回调中添加控件。有关这些自定义控件的更多信息,请参阅 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
于 2013-10-19T02:52:37.097 回答