2012-10-11 65 views
0

如何根據某些子句更改頁面的順序?例如,在自定義頁面上有2個單選按鈕 - 「修復程序」和「卸載程序」。當我選擇'修復程序'下面應顯示5頁,當我選擇另一個單選按鈕應該是2頁。 是否有可能在卸載程序安裝頁面使用,反之亦然?NSIS中的MUI頁面訂單

回答

1

MUI_UNPAGE_CONFIRM並沒有真正意義的安裝程序,比你可以在安裝程序和卸載都使用所有的頁面類型等。

要跳過一個頁面,您必須在該頁面的預回調函數調用Abort。您也可以jump directly to a specific page

!include MUI2.nsh 
!include LogicLib.nsh 

Var pagemode 
Function selectpagemode 
MessageBox MB_YESNO "Mode A?" IDNO nope 
    StrCpy $pagemode "A" 
    Return 
    nope: 
    StrCpy $pagemode "B" 
FunctionEnd 

Function onlymodeA 
${IfThen} $pagemode != "A" ${|} Abort ${|} 
FunctionEnd 
Function onlymodeB 
${IfThen} $pagemode == "A" ${|} Abort ${|} 
FunctionEnd 

!define MUI_PAGE_CUSTOMFUNCTION_LEAVE selectpagemode 
!insertmacro MUI_PAGE_WELCOME 

;Mode A 
!define MUI_PAGE_CUSTOMFUNCTION_PRE onlymodeA 
!insertmacro MUI_PAGE_LICENSE "${__FILE__}" 
!define MUI_PAGE_CUSTOMFUNCTION_PRE onlymodeA 
!insertmacro MUI_PAGE_COMPONENTS 

;Mode B 
!define MUI_PAGE_CUSTOMFUNCTION_PRE onlymodeB 
!insertmacro MUI_PAGE_COMPONENTS 
!define MUI_PAGE_CUSTOMFUNCTION_PRE onlymodeB 
!insertmacro MUI_PAGE_LICENSE "${__FILE__}" 

!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE English 
+0

它適用於安裝頁面,但是當我使用它的MUI_UNPAGE這兒有3個警告: 安裝功能「selectpagemode」未引用 - 歸零碼(50-55)出 安裝功能「onlymodeA」不引用 - 歸零碼(55-58)出 安裝功能「onlymodeB」未引用 - 歸零碼(58-61)出 –

+0

您有前綴的函數名「UN」。用於卸載程序使用的功能... – Anders