NSIS脚本的基本使用:

1:写注册表

 WriteRegStr HKCU "SOFTWARE\ZSAPP" "VERSION_NUMBER" "${VERSION_NUMBER}"

2:读取注册表

 ReadRegStr $old_installPath HKCU  "Software\ZSAPP\" "INTALL_PATH"

3:关闭进程

 ExecWait '"TASKKILL" "/F" "/IM" "start.exe"'

4:删除安装文件夹里的所有文件,包括自己

 ExecWait '"CMD" /C RMDIR /S /Q "$old_installPath"'

5:自定义安装路径(每次都使用上一次的安装路径)

#安装之前初始化
Function .onInit
Var /GLOBAL myInstallPath
ReadRegStr $myInstallPath HKCU "Software\ZSAPP\" "INTALL_PATH"
${IF} $myInstallPath != ""
StrCpy $INSTDIR $myInstallPath
${EndIf}
${IF} $myInstallPath == ""
StrCpy $INSTDIR "C:\Program Files\ZSAPP\"
${EndIf}
FunctionEnd

6:检测版本是否需要覆盖更新:

Var /GLOBAL version_number
ReadRegStr $version_number HKCU "Software\ZSAPP\" "VERSION_NUMBER"
${IF} $version_number != ""
#"关闭进程"
ExecWait '"TASKKILL" "/F" "/IM" "start.exe"'
ExecWait '"TASKKILL" "/F" "/IM" "Telegram.exe"'
ExecWait '"TASKKILL" "/F" "/IM" "ssserver.exe"'
${IF} $version_number == ${VERSION_NUMBER}
MessageBox MB_YESNO "检测到和已安装的版本相同,是否继续安装?" IDYES true IDNO false
true:
Var /GLOBAL old_installPath
ReadRegStr $old_installPath HKCU "Software\ZSAPP\" "INTALL_PATH"
#ExecWait '"$old_installPath\uninst.exe" /S _?=$old_installPath'
#ExecWait '"$old_installPath\uninst.exe"'
ExecWait '"CMD" /C RMDIR /S /Q "$old_installPath"'
Goto next
false:
Quit
${EndIf}
${EndIf}
next:
SetOutPath "$INSTDIR\lib"

posted on 2017-04-19 13:07  阿兴的平凡世界  阅读(655)  评论(0编辑  收藏  举报

导航