在正常情况下安装包会有“欢迎界面”、“安装目录选择界面”等等,有时我们需要安装包自动跳过这 2 个界面,如安装包通过命令行参数传入“安装目录”(如setup.exe /installdir F:\test
),本文讲述如何使安装包跳过指定的界面。
HOW TO DO?
在页面插入宏之前通过MUI_PAGE_CUSTOMFUNCTION_PRE
来指定 pre 处理函数,在该函数中来判断是否需要跳过:
1 2 3 4 5 6 7 8
| !define MUI_PAGE_CUSTOMFUNCTION_PRE SkipPage !insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipPage !insertmacro MUI_PAGE_DIRECTORY
|
SkipPage
函数定义如下:
1 2 3 4 5 6
| Function SkipPage StrLen $R1 $paramInstllDir ${If} $R1 > 0 Abort ${EndIf} FunctionEnd
|
获取命令行参数存入$paramInstllDir
变量,并解析命令行参数:
1 2 3 4 5 6 7 8 9 10
| !macro ParseParameters ${GetParameters} $R0 ${GetOptions} $R0 '/installdir' $R1 StrCpy $paramInstllDir $R1
StrLen $R1 $paramInstllDir ${If} $R1 > 0 StrCpy $INSTDIR $paramInstllDir ${EndIf} !macroend
|