2012-06-19 3 views
2

После установки NSIS с Modern UI 2 пользователь получает окно с сообщением, которое необходимо подтвердить, когда он нажимает кнопку . Отмените кнопку в мастере установки.Как отменить установку NSIS без отображения окна подтверждения?

Я хочу, чтобы пользователь мог выйти из мастера установки без, подтверждающий дополнительную «Вы уверены?». диалоговое окно сообщения.

В источниках MUI я нашел этот фрагмент:

!macro MUI_FUNCTION_ABORTWARNING 

    Function .onUserAbort 

    !ifdef MUI_PAGE_FUNCTION_ABORTWARNING 
     Call ${MUI_PAGE_FUNCTION_ABORTWARNING} 
    !endif 

    !ifdef MUI_ABORTWARNING 
     !insertmacro MUI_ABORTWARNING 
    !endif 

    !ifdef MUI_CUSTOMFUNCTION_ABORT 
     Call "${MUI_CUSTOMFUNCTION_ABORT}" 
    !endif 
    FunctionEnd 

!macroend 

Я одновременно способный определить MUI_PAGE_FUNCTION_ABORTWARNING функцию и функцию MUI_CUSTOMFUNCTION_ABORT.

Поскольку фактическое поле сообщения определено в среднем вызове макроса MUI_ABORTWARNING, я не вижу способа остановить вызов макроса.

Мой вопрос:

Есть ли способ, чтобы помешать MUI показывать пользователю окно сообщения подтверждения, когда он нажимает Отмена кнопку в процессе установки?

ответ

3

Это предупреждение контролируется !define MUI_ABORTWARNING (Перед тем, как включить mui.nsh):

Name "Test" 
Outfile "Test.exe" 
RequestExecutionLevel user 

#Comment/uncomment this to toggle the messagebox: !define MUI_ABORTWARNING 

!include MUI2.nsh 

!insertmacro MUI_PAGE_WELCOME 
!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_PAGE_FINISH 
!insertmacro MUI_LANGUAGE English 

Section 
SectionEnd 
+0

Спасибо, @Anders, я [попробовал это] (http://pastebin.com/HATfCZH8), и он, похоже, не работает. Я нажимаю «Отменить» на странице приветствия и все еще задаюсь вопросом, хочу ли я выйти. Поскольку я знаю высокое качество ваших ответов, мне интересно, где я сделал ошибку в [моем сценарии] (http://pastebin.com/HATfCZH8). Есть идеи? –

+1

Строка 12, возможно, вставлена ​​мастером HMNisEdit ... – Anders

+0

Извините, я не понимаю; строка 12 является '! define MUI_ABORTWARNING', которую вы предложили вставить. Я смущен ... –

1

(непроверенный) вы можете попытаться определить соответствующие функции?

!undef MUI_ABORTWARNING 
//or 
!undef MUI_FUNCTION_ABORTWARNING 
+0

Спасибо, @Seki - я уже пробовал это (и Хусти попробовал еще раз). Он продолжает выдавать сообщение об ошибке «'! Undef: «MUI_ABORTWARNING» не определено! » –

+3

MUI_FUNCTION_ABORTWARNING - это макрос и не может быть! Undef'ed – Anders

Смежные вопросы