2012-09-17 3 views
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가 예상대로 작동하지 않습니다.

SetAutoClose true 

을 설정하려고하지만 내 SetAutoClose 설정을 무시하고 (내가 원하지 않는) 마무리 칠 사용자에게 메시지를 표시, 마무리 페이지를 제공합니다. 어느 누구나 이걸 도와 줄 수 있니?

답변

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 
관련 문제