如何在InstallOption上有条件地显示目录页面?

时间:2013-05-21 12:43:09

标签: nsis

我正在使用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_TYPE不是"1"时显示,如何执行此操作?

1 个答案:

答案 0 :(得分: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

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