0

如何根据某些条款更改页面顺序?例如,自定义页面上有 2 个单选按钮 - “修复程序”和“卸载程序”。当我选择“修复程序”时,下一个应该显示 5 页,当我选择另一个单选按钮时应该显示 2 页。是否可以在卸载程序安装页面中使用,反之亦然?

4

1 回答 1

2

MUI_UNPAGE_CONFIRM 在安装程序中没有真正意义,除了您可以在安装程序和卸载程序中使用所有页面类型。

要跳过页面,您必须调用Abort该页面的预回调函数。您也可以直接跳转到特定页面

!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
于 2012-10-11T22:00:10.297 回答