0
!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 设置并打开了完成页面,提示用户点击完成(我不想要)。任何人都可以帮助我吗?

4

1 回答 1

2

仅当 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
于 2012-09-17T22:57:01.180 回答