2

使用Modern UI 2进行 NSIS 设置后,用户在单击Cancel安装向导中的按钮时会收到一个消息框以进行确认。

我希望用户能够退出安装向导,而无需确认额外的“您确定吗?” 对话框消息框。

在 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宏的中间调用中定义的,因此我看不到阻止宏被调用的方法。

我的问题是:

有没有办法阻止 MUICancel在设置过程中单击按钮时向用户显示确认消息框?

4

2 回答 2

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
于 2012-06-19T17:41:12.337 回答
1

(未经测试)您可以尝试取消定义相应的功能吗?

!undef MUI_ABORTWARNING
//or
!undef MUI_FUNCTION_ABORTWARNING
于 2012-06-19T15:41:33.297 回答