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 ファイルにあるものです。インストールの最後に、ユーザーに他のソフトウェアをインストールするように求めています。ユーザーが 2 番目のソフトウェアをインストールすることを選択した場合、最初のソフトウェア (インストールしていたもの) は、インストールが完了するとすぐにサイレントになり、消えます。ここで私は設定しようとしました

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 に答える