1. 程式人生 > >NSIS教程(5): 靜默安裝

NSIS教程(5): 靜默安裝

常用的靜默安裝有2種:
1. 在指令碼中加入SilentInstall 和 SilentUninstall 命令
2. 在程式啟動引數里加 /S 引數(區分大小寫)

要判斷安裝、解除安裝程式是否靜默可以使用 IfSilent

# 安裝操作開始前.
Function .onInit
    IfSilent +2 +1
    MessageBox MB_ICONQUESTION|MB_OK "歡迎使用"
FunctionEnd

對於有些命令需要為靜默安裝指定預設的回答,如MessageBox需要加入/SD開關來指定預設回答。

# 解除安裝操作開始前.
Function un.onInit
    MessageBox MB_ICONQUESTION|MB_YESNO "確定要解除安裝嗎?"
/SD IDYES IDYES +2 IDNO +1 Abort FunctionEnd

如果需要為靜默安裝指定其他的引數,如使用者名稱等,可以使用程式啟動引數指定,並在.onInit 函式裡進行解析:

#使用外掛FileFunc中的2個巨集
!include "FileFunc.nsh"
!insertmacro GetParameters
!insertmacro GetOptions
# 定義全域性變數
Var paramInstllDir      # 啟動引數-安裝目錄
# 自定義巨集ParseParameters,在.onInit函式中呼叫即可
!macro ParseParameters
    ${GetParameters} $R0
    ${GetOptions} $R0 '/installdir'
$R1 StrCpy $paramInstllDir $R1 IfSilent +1 +2 StrCpy $INSTDIR $paramInstllDir !macroend