1

我正在使用 MUI 用户界面,但只想在用户在 InstallOption 页面中选择某个 CheckBox 时显示目录页面。

我的问题是我不知道如何有条件地禁用 MUI_PAGE_DIRECTORY 页面。

Function InstallTypeLeave
  !insertmacro INSTALLOPTIONS_READ $INSTALL_TYPE "InstallType.ini" "Field 1" "State"
  SetShellVarContext current
  StrCmp $INSTALL_TYPE "1" SET_LOCATION_LOCAL SET_LOCATION_NETWORK
  SET_LOCATION_LOCAL:
    StrCpy $INSTDIR "$APPDATA\..."
    GOTO SET_LOCATION_FINISH
  SET_LOCATION_NETWORK:
    StrCpy $INSTDIR ""
    GOTO SET_LOCATION_FINISH
  SET_LOCATION_FINISH:
FunctionEnd

; Directory page
!insertmacro MUI_PAGE_DIRECTORY

该页面只应在$INSTALL_TYPEnot时显示"1",如何做到这一点?

4

1 回答 1

2

添加一个页面回调,根据您的条件丢弃页面,例如:

#specify a callback before the MUI_PAGE_DIRECTORY
!define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryPageCallBack
!insertmacro MUI_PAGE_DIRECTORY

#...

Function DirectoryPageCallBack
    ${if} $INSTALL_TYPE = 1
        Abort    #in pre-function callback, discard the page
    ${endif}
FunctionEnd

有关详细信息,请参阅回调参考。

于 2013-05-21T15:25:01.857 回答