!define VERSION_NUM "v1.12.1" !define DRIVE_D "G:" !define SECOND_LEVEL_NAME "APack" !define RUN_ENVIRONMENT_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Environment" !define INSTALL_NAME "RTM_x64" !define INSTALL_DIR "C:\ZOYON\RTM" !define SPLIT_TOOL_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\工程切分工具20230606\工程切分工具20230606" !define RTM_CAPTURE_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ReleaseXML5" !define RTM_CAPTURE_XML "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\XML" !define RTM_XML_CONFIG_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\RTMConfiger" !define RTM_CHANNEL_SHOW_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ChannelShow" !define MONITOR_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Monitor_RealseV20.12.1" !define RTM_VERSION_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack" ; Build Unicode installer Unicode True ; The default installation directory InstallDir "${INSTALL_DIR}" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\${INSTALL_NAME}" "${INSTALL_DIR}" LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" LangString Name ${LANG_SIMPCHINESE} "Simplified Chinese" Name "${INSTALL_NAME}" OutFile "x64采集软件安装包${VERSION_NUM}.exe" RequestExecutionLevel admin !include "${NSISDIR}\Contrib\Modern UI\System.nsh" Page license Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ; 停止指定的Windows服务 Function un.StopService ; 使用System plug-in的nsExec插件执行命令 ; nsExec::ExecToLog 'net stop "CaptProcMgr"' nsExec::Exec 'net stop "CaptProcMgr"' nsExec::Exec 'net stop "CaptWarnMgr"' Sleep 1000 FunctionEnd Function StopService ; 使用System plug-in的nsExec插件执行命令 nsExec::Exec 'net stop "CaptProcMgr"' nsExec::Exec 'net stop "CaptWarnMgr"' Sleep 1000 FunctionEnd ; 停止指定的进程 Function un.StopProcess ; 使用System plug-in的nsExec插件执行命令 nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"' nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"' FunctionEnd Function StopProcess ; 使用System plug-in的nsExec插件执行命令 nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"' nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"' FunctionEnd Section "卸载程序" SectionIn RO Call StopProcess Call StopService WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd ; 设定许可协议文本 LicenseData "${RTM_VERSION_DIR}\license.txt" Section "切割工具" SetOutPath "$INSTDIR\Tool" File /nonfatal /r "${SPLIT_TOOL_DIR}\*.*" CreateShortCut "$DESKTOP\切分工具.lnk" $INSTDIR\Tool\SplitTaskApp.exe "" \ "$INSTDIR\Tool\Kid Mac Os.ico" 0 SW_SHOWNORMAL "" "Split Tool" SectionEnd Section "RTM配置工具" SetOutPath "$INSTDIR\RTMConfiger" File /nonfatal /r "${RTM_XML_CONFIG_DIR}\*.*" CreateShortCut "$DESKTOP\RTM配置.lnk" $INSTDIR\RTMConfiger\RTMConfiger.exe "" \ "$INSTDIR\RTMConfiger\RTMConfiger.exe" 0 SW_SHOWNORMAL "" "采集软件RTM配置文件修改工具。" SectionEnd Section "监控程序" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk" Delete "$STARTMENU\Web.Master.lnk" Delete "$STARTMENU\NavExe.lnk" Delete "$SMSTARTUP\Web.Master.lnk" Delete "$SMSTARTUP\NavExe.lnk" SetOutPath "$INSTDIR\Monitor" File /nonfatal /r "${MONITOR_DIR}\*.*" File "/oname=$INSTDIR\Monitor\dotnet-sdk-3.1.404-win-x64.exe" \ "${RUN_ENVIRONMENT_DIR}\dotnet-sdk-3.1.404-win-x64.exe" SetOutPath "$INSTDIR\Monitor\Service" CreateShortCut "$DESKTOP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \ "$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。" ;$STARTMENU CreateShortCut "$SMSTARTUP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \ "$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。" SetOutPath "$INSTDIR\Monitor\MainFrame" CreateShortCut "$DESKTOP\ZyFrame.lnk" $INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe "" \ "$INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe" 0 SW_SHOWNORMAL "" "Web监控界面。" ; CreateShortCut "$DESKTOP\ZyMain.lnk" $INSTDIR\Monitor\MainFrame\ZyLaunch.exe "" \ ; "$INSTDIR\Monitor\MainFrame\ZyLaunch.exe" 0 SW_SHOWNORMAL "" "Web监控界面。" SetOutPath "$INSTDIR\Monitor\NavUIExe" CreateShortCut "$SMSTARTUP\NavExe.lnk" $INSTDIR\Monitor\NavUIExe\NavExe.exe "" \ "$INSTDIR\Monitor\NavUIExe\NavExe.exe" 0 SW_SHOWNORMAL "" "NavExe 服务" nsExec::Exec 'sc stop CaptWarnMgr' nsExec::Exec 'sc delete CaptWarnMgr' nsExec::Exec 'sc create CaptWarnMgr binPath="$INSTDIR\Monitor\Warn\WNS.Detection.exe" start=auto' SectionEnd Section "RTM采集软件" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk" SetOutPath "$INSTDIR" File /nonfatal /r "${RTM_CAPTURE_DIR}\*.*" CreateDirectory "$INSTDIR\Plugin" File "/oname=$INSTDIR\Plugin\mysql-connector-odbc-8.0.29-winx64.msi" \ "${RUN_ENVIRONMENT_DIR}\mysql-connector-odbc-8.0.29-winx64.msi" File "/oname=$INSTDIR\Plugin\强制关闭本机所有采集.bat" \ "${RUN_ENVIRONMENT_DIR}\强制关闭本机所有采集.bat" File "/oname=$INSTDIR\Plugin\Dalsa库剔除.bat" \ "${RUN_ENVIRONMENT_DIR}\Dalsa库剔除.bat" ; File "/oname=$INSTDIR\Plugin\Basler库剔除.bat" \ ; "${RUN_ENVIRONMENT_DIR}\Basler库剔除.bat" ExecWait "$INSTDIR\BUS.RegisterPC.exe" ; CreateDirectory "$INSTDIR\RTM_Version" ; File "/oname=$INSTDIR\RTM_Version\version.txt" \ ; "${RTM_VERSION_DIR}\version.txt" ; Write the installation path into the registry WriteRegStr HKLM SOFTWARE\${INSTALL_NAME} "$INSTDIR" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayName" "${INSTALL_NAME}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoRepair" 1 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "Publisher" "ZOYON" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayVersion" "${VERSION_NUM}" WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd Section "采集XML配置文件" SetOutPath "$INSTDIR" File /nonfatal /r "${RTM_CAPTURE_XML}\*.*" SectionEnd Section "通道查看工具" SetOutPath "$INSTDIR\ChannelShow" File /nonfatal /r "${RTM_CHANNEL_SHOW_DIR}\*.*" CreateShortCut "$DESKTOP\通道查看器.lnk" $INSTDIR\ChannelShow\ChannelDataShow.exe "" \ "$INSTDIR\ChannelShow\ChannelDataShow.exe" 0 SW_SHOWNORMAL "" "采集卡通道查看工具。" SectionEnd Section "Uninstall" ; 卸载前停止服务和进程 Call un.StopService Call un.StopProcess RMDir /r /REBOOTOK "$INSTDIR" Delete "$SMSTARTUP\Web.Master.lnk" Delete "$SMSTARTUP\NavExe.lnk" Delete "$DESKTOP\切分工具.lnk" Delete "$DESKTOP\RTM配置.lnk" Delete "$DESKTOP\通道查看器.lnk" Delete "$DESKTOP\Web.Master.lnk" Delete "$STARTMENU\Web.Master.lnk" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk" Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk" Delete "$STARTMENU\Web.Master.lnk" Delete "$STARTMENU\NavExe.lnk" Delete "$DESKTOP\ZyFrame.lnk" Delete "$DESKTOP\ZyMain.lnk" Delete "$INSTDIR\Uninstall.exe" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" DeleteRegKey HKLM SOFTWARE\${INSTALL_NAME} SectionEnd