NSIS. Выход из установщика

Рейтинг: 0Ответов: 0Опубликовано: 30.04.2015

Я определил кастомную функцию abort и хочу прервать установку.

!define MUI_ABORTWARNING
!define MUI_CUSTOMFUNCTION_ABORT customOnUserAbort

Function customOnUserAbort
    Quit (or Abort) #no matter
FunctionEnd

Также создана кастомная страница, где выполняются долгие по времени операция (скачивание файла) в фоновом режиме (отдельном потоке) в функции MyCustomLeave (при переходе на следующую страницу)

Function MyCustomLeave 
ShowWindow $UnderTopLabel 0 
ShowWindow $UnderTopLabel2 1

EnableWindow $CustomNext.Button 0

EnableWindow $RADIO1 0
EnableWindow $RADIO_LABEL1 0
EnableWindow $RADIO2 0
EnableWindow $RADIO_LABEL2 0
ShowWindow $GROUP1 ${SW_HIDE}

${NSD_LV_GetCheckState} $GROUP1 $unpackIndex $Checkbox_StateUnpackIndex

${NSD_LV_GetCheckState} $GROUP1 $hpIndex $Checkbox_StateSetUpHomepage
 ${if} $Checkbox_StateSetUpHomepage == 1
    StrCpy $ChangeHomepage 1
 ${else}
    StrCpy $ChangeHomepage 0
 ${endif}

${NSD_LV_GetCheckState} $GROUP1 $searchIndex $Checkbox_StateSetUpSearch
 ${if} $Checkbox_StateSetUpSearch == 1
    StrCpy $ChangeSearch 1
 ${else}
    StrCpy $ChangeSearch 0
 ${endif}

${NSD_LV_GetCheckState} $GROUP1 $ntIndex $Checkbox_StateSetUpNewTabPage
 ${if} $Checkbox_StateSetUpNewTabPage == 1
    StrCpy $ChangeNewTabPage 1
 ${else}
    StrCpy $ChangeNewTabPage 0
 ${endif}

 /*CUSTOM_PAGE_SOFT_3*/

Call ValidateCheckedExtraSoft

GetFunctionAddress $0 **workerfunc**
BgWorker::CallAndWait #in background
FunctionEnd

При нажатии кнопки "закрыть x" (красная в правом верхнем углу) срабатывает customOnUserAbort, появляется новое чистое серое окно, а инсталер не завершается пока до конца не выполнится workerfunc.

Подскажите пожалуйста как можно немедленно завершить установщик? Или как можно сделать кнопку "закрыть x" не активной? Или может какой другой грамотный вариант?

Спасибо за помощь!

Ответы

Ответов пока нет.