; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 ; 安装程序初始定义常量 ; 1.6叫微OA365,4.0叫myapps !define PRODUCT_NAME "myapps" !define PRODUCT_VERSION "V4.4.sp7" !define PRODUCT_PUBLISHER "天翎" !define PRODUCT_WEB_SITE "http://www.teemlink.com" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !include "WinVer.nsh" !include "WordFunc.nsh" SetCompressor lzma ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------ !include "MUI.nsh" ; MUI 预定义常量 !define MUI_ABORTWARNING !define MUI_ICON "D:\Packge\NSIS\WeiOA365.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" ; 欢迎页面 !insertmacro MUI_PAGE_WELCOME ; 许可协议页面 !insertmacro MUI_PAGE_LICENSE "License.txt" ; 安装目录选择页面 !insertmacro MUI_PAGE_DIRECTORY ; 安装过程页面 !insertmacro MUI_PAGE_INSTFILES ; 安装完成页面 !insertmacro MUI_PAGE_FINISH ; 安装卸载过程页面 !insertmacro MUI_UNPAGE_INSTFILES ;!insertmacro MUI_UNPAGE_FINISH ; 安装界面包含的语言设置 !insertmacro MUI_LANGUAGE "SimpChinese" ; 安装预释放文件 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ; ------ MUI 现代界面定义结束 ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "E:\4.3trunk\最新版\WeiOA365Setup_.exe" ;OutFile "F:\pack_dir\MyApps-M3\最新版Beta\WeiOA365Setup_V${PRODUCT_VERSION}.exe" ;OutFile "Setup.exe" InstallDir "$PROGRAMFILES64\MyApps" ShowInstDetails show ShowUnInstDetails show ;以管理员身份运行 RequestExecutionLevel admin Section "MainSection" SEC01 SetOutPath "$INSTDIR" SetOverwrite ifnewer ExecCmd::exec '"$SYSDIR\net.exe stop MySQL-OBPM-Port-3307"' ;干掉迅雷 ExecCmd::exec '"$SYSDIR\taskkill.exe /f /im thunder.exe"' ;4.2打包的地址 File /r "E:\4.3trunk\MyApps\*.*" ;File /r "D:\pack_dir\MyApps_Trunk\WEIOA365\*.BAT" SectionEnd Section -AdditionalIcons ;修改环境变量 ;4.1jdk为1.7.0_9 ;4.1 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "JAVA_HOME" "$INSTDIR\bin\jdk1.7.0_79" WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "JAVA_HOME" "$INSTDIR\bin\jdk1.8.0_65" ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" ;4.1 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$INSTDIR\bin\jdk1.7.0_79\bin;$0" WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$INSTDIR\bin\jdk1.8.0_65\bin;$0" ;刷新环境变量 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 ExecCmd::exec '"$INSTDIR\bin\mysql-5.7.28-winx64\StartMySQL.bat"' ExecCmd::exec '"$INSTDIR\bin\install_service.bat"' ExecCmd::exec '"$INSTDIR\bin\stop.bat"' WriteRegStr HKLM "SYSTEM\CurrentControlSet\services\Tomcat8MyApps" "ObjectName" "LocalSystem" WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\Tomcat8MyApps" "Start" 0x00000002 ExecCmd::exec '"$INSTDIR\bin\run.bat"' ;更改Tomcat服务为自动启动 ;4.2不需要启动Tomcat ;WriteRegDWORD HKLM "SYSTEM\ControlSet001\Services\Tomcat7WeiOA365" "Start" 0x00000002 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateDirectory "$SMPROGRAMS\MyApps" CreateShortCut "$DESKTOP\MyApps帮助.lnk" "$INSTDIR\bin\help\ReadMe.html" "" "$INSTDIR\bin\help\ico\teemlink.ico" CreateShortCut "$DESKTOP\登录MyApps系统.lnk" "http://localhost:8080/obpm" "" "$INSTDIR\bin\help\ico\logo32x32.ico" CreateShortCut "$SMPROGRAMS\MyApps\开始使用.lnk" "$INSTDIR\bin\help\ReadMe.html" "" "$INSTDIR\bin\help\ico\logo32x32.ico" CreateDirectory "$SMPROGRAMS\MyApps\运维管理" CreateShortCut "$SMPROGRAMS\MyApps\运维管理\备份数据.lnk" "$INSTDIR\bin\backup.bat" "" "$INSTDIR\bin\help\ico\backup.ico" CreateShortCut "$SMPROGRAMS\MyApps\运维管理\恢复数据.lnk" "$INSTDIR\bin\restore.bat" "" "$INSTDIR\bin\help\ico\restore.ico" CreateShortCut "$SMPROGRAMS\MyApps\运维管理\清除演示数据.lnk" "$INSTDIR\bin\clean_data.bat" "" "$INSTDIR\bin\help\ico\clean_data.ico" CreateShortCut "$SMPROGRAMS\MyApps\运维管理\卸载MyApps.lnk" "$INSTDIR\uninst.exe" CreateShortCut "$SMPROGRAMS\MyApps\产品官网.lnk" "http://www.weioa365.com" "" "$INSTDIR\bin\help\ico\logo32x32.ico" SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd /****************************** * 以下是安装程序的卸载部分 * ******************************/ Section Uninstall ;修改环境变量 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "JAVA_HOME" "" ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" ${WordReplace} $0 $INSTDIR "" "+*" $0 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" $0 ;刷新环境变量 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 ExecCmd::exec '"$INSTDIR\bin\backup.bat"' ExecCmd::exec '"$INSTDIR\bin\mysql-5.7.28-winx64\StopMySQL.bat"' ExecCmd::exec '"$INSTDIR\bin\uninstall_service.bat"' Delete "$DESKTOP\登录MyApps系统.lnk" Delete "$DESKTOP\MyApps帮助.lnk" Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" Delete "$SMPROGRAMS\MyApps\产品官网.lnk" Delete "$SMPROGRAMS\MyApps\运维管理\卸载MyApps.lnk" Delete "$SMPROGRAMS\MyApps\运维管理\清除演示数据.lnk" Delete "$SMPROGRAMS\MyApps\运维管理\恢复数据.lnk" Delete "$SMPROGRAMS\MyApps\运维管理\备份数据.lnk" Delete "$SMPROGRAMS\MyApps\开始使用.lnk" RMDir "$SMPROGRAMS\MyApps\运维管理" RMDir "$SMPROGRAMS\MyApps" RMDir /r "$INSTDIR\tools" RMDir /r "$INSTDIR\bin" RMDir /r "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" SetAutoClose true SectionEnd #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--# Function .onInstSuccess ExecShell "open" "$INSTDIR\bin\help\ReadMe.html" FunctionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2 Abort FunctionEnd Function un.onUninstSuccess HideWindow ;MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从您的计算机移除。" MessageBox MB_YESNO|MB_ICONQUESTION|MB_TOPMOST "已卸载成功,为了服务及垃圾清理完整,是否现在重启!" IDNO +2 Reboot FunctionEnd Var UNINSTALL_PROG Function .onInit Call checksystem ClearErrors ReadRegStr $UNINSTALL_PROG ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "UninstallString" IfErrors done MessageBox MB_YESNO|MB_ICONQUESTION \ "检测到本机已经安装了 ${PRODUCT_NAME}。\ $\n$\n新的版本安装可能会覆盖旧版本数据,请先进行【备份】再继续安装!$\n$\n是否已经【备份】并继续安装?" \ /SD IDYES \ IDYES done ;IDNO Abort Abort done: FunctionEnd Function checksystem ${If} ${IsWin2003} ${OrIf} ${IsWinXP} MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "程序不支持安装在系统 2000 或 XP!请退出安装" Abort ${EndIf} FunctionEnd