SetAutoClose没有按预期工作

时间:2012-09-17 21:53:27

标签: nsis

!insertmacro MUI_PAGE_WELCOME

!define MUI_LICENSEPAGE_CHECKBOX
!insertmacro MUI_PAGE_LICENSE "license.txt"

!insertmacro MUI_PAGE_COMPONENTS
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
;Confirmation Page
Page custom Confirmationpage
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH

这就是我在setup.nsi文件中的开头。在安装结束时,我提示用户安装其他软件。如果用户选择安装第二个软件,初始软件(正在安装)应该保持沉默,并在安装完成后立即消失。 在这里我试着设置

SetAutoClose true

但它忽略了我的SetAutoClose设置并显示完成页面,提示用户点击完成(我不想要)。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

Autoclose仅在instfiles是最后一页时才有效。

如果您不想根据某些条件显示完成页面,只需在部分中调用quit或跳过页面:

Var NoFinishPage

!insertmacro MUI_PAGE_INSTFILES
!define MUI_PAGE_CUSTOMFUNCTION_PRE maybeskipfinish
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English


Section "Other software"
ExecWait '"c:\foo\bar.exe" /baz'
StrCpy $NoFinishPage 1
SectionEnd

Function maybeskipfinish
${If} $NoFinishPage = 1
    Abort
${EndIf}
FunctionEnd