我正在使用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"
时显示,如何执行此操作?
答案 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参考。