Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как отменить установку NSIS без отображения окна с подтверждающим сообщением?

Автор вопроса: Uwe KeimОтветов: 2

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

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

В источниках 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 показывать пользователю окно с подтверждающим сообщением, когда он нажимает кнопку Отмена во время процесса установки?

installationnsismodern-uimessagebox

Ответы

Ответ 1 · рейтинг 3 · Anders

Это предупреждение контролируется !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

Ответ 2 · рейтинг 1 · Seki

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

!undef MUI_ABORTWARNING
//or
!undef MUI_FUNCTION_ABORTWARNING

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы