1. 程式人生 > >NSIS 靜默安裝 以及 在安裝軟體時檢測軟體是否啟動

NSIS 靜默安裝 以及 在安裝軟體時檢測軟體是否啟動

NSIS 靜默安裝vc++2013

Section vc
SetOutPath "$INSTDIR"
 SetOverwrite on
  ExecWait '$INSTDIR\vc2013_x86.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
  Delete "$INSTDIR\vc2013_x86.exe"
SectionEnd

注意我的nsi檔案與vc2013_x86.exe都放在Debug目錄下

  • NSIS 在軟體安裝時檢測軟體是否啟動
Function .onInit
  ;關閉程序
  Push $R0
  CheckProc:
    Push
"xxx.exe" ProcessWork::existsprocess Pop $R0 IntCmp $R0 0 Done MessageBox MB_OKCANCEL|MB_ICONSTOP "安裝程式檢測到 ${PRODUCT_NAME} 正在執行。$\r$\n$\r$\n點選 “確定” 強制關閉${PRODUCT_NAME},繼續安裝。$\r$\n點選 “取消” 退出安裝程式。" IDCANCEL Exit Push "xxx.exe" Processwork::KillProcess Sleep 1000 Goto CheckProc Exit: Abort Done: Pop
$R0 FunctionEnd

注意:根據 NSIS 指令碼編輯規則,所有 Function 區段必須放置在 Section 區段之後編寫,以避免安裝程式出現未可預知的問題。