2011-08-22 55 views
0

我想爲我正在使用的插件創建一個NSIS安裝程序,但我希望它可以作爲「免提」。具體來說,我不希望在安裝程序結束時點擊「此處關閉」;相反,我希望許可證出來,當他們點擊「同意」時,它會安裝和關閉。即使在靜音模式下,是否可以在nsis安裝程序中顯示許可證對話框?

我可以使用靜默安裝來執行此操作,但許可證頁面不會顯示;除了許可證頁面之外,是否有辦法讓安裝保持沉默?

回答

1

在靜音模式下,只有.onInit和Sections被執行,頁面不會執行,並且無法執行它們。爲了解決這個問題,你必須用「自定義靜音模式」來僞裝它:

!include LogicLib.nsh 

var mySilent 

Function .onInit 
${If} ${Silent} 
    StrCpy $mySilent 1 
    SetAutoClose true ;Auto close InstFiles page 
    SetSilent normal 
${EndIf} 
FunctionEnd 

Function SkipInSilent 
${IfThen} $mySilent <> 0 ${|} Abort ${|} 
FunctionEnd 

Page License 
Page Directory SkipInSilent 
Page Components SkipInSilent 
Page InstFiles 

Section 
SectionEnd 
+0

我實際上並不想要做一個「非靜音」模式,我只是不想要不要展示EULA;我希望它在所有情況下表現得都一樣。如果我使用您提供的示例,如何讓它不等我完成後單擊「關閉」按鈕? (InstFiles通常等待點擊,不是?) – taxilian

+1

@Taxilian:刪除.onInit中的if check,但保持SetAutoClose true和SetSilent正常 – Anders

+0

ahh;我錯過了「SetAutoClose」位。謝謝! – taxilian

相關問題