Добавление флажка на страницу приветствия программы удаления NSIS
Я пытаюсь добавить флажок на экране приветствия моего деинсталлятора NSIS, но у меня возникают проблемы с поиском примера. Из документации для MUI2 я не могу найти никаких пользовательских функций, которые можно запустить на странице приветствия.
Похоже, что готовую страницу легче настроить на основе документации и других ответов, которые я нашел.
Есть ли способ настроить страницу приветствия? Если нет, каковы другие варианты достижения цели?
1 ответ
В документации MUI(1), на которую вы ссылались, есть примечание о том, как вы можете настроить страницу приветствия в обратных вызовах pre/show. С 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