Я пытался включить флажок в мой деинсталлятор. Я смог установить флажок. Но когда я пытаюсь установить состояние флажка, он всегда возвращает 0, даже если установлен флажок. Вот код, я используюNSD_GetState возвращает 0 всегда: NSIS
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.ModifyUnWelcome
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_INSTFILES
!define MUI_FINISHPAGE_TITLE_3LINES
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.LeaveUnWelcome
!insertmacro MUI_UNPAGE_FINISH
Function un.ModifyUnWelcome
${NSD_CreateCheckbox} 120u -18u 50% 25u "Do something special"
Pop $mycheckbox
SetCtlColors $mycheckbox "" ${MUI_BGCOLOR}
${NSD_Check} $mycheckbox ; Check it by default
FunctionEnd
Function un.LeaveUnWelcome
${NSD_GetState} $mycheckbox $0
MessageBox MB_OK "On Leave mycheckbox = $mycheckbox $\n $$0 = $0"
${If} $0 <> 0
MessageBox mb_ok "I'm special"
${EndIf}
FunctionEnd
В результате я не мог проверить, если флажок установлен или нет. Что не так с моим кодом и как я могу его исправить?
Я даже пытался что-то вроде ниже
${NSD_Check} $mycheckbox ; Check it by default
${NSD_SetState} $mycheckbox ${BST_CHECKED}
Я получил код выше от Adding a checkbox to the NSIS Uninstaller Welcome Page
Вы получаете предупреждения о компиляторе? – Anders
Ваш результат может быть искажен выполнением mecro, вы получите лучший результат с переменной для хранения результата '$ {NSD_GetState}'? – Seki