| 
									
										
										
										
											2022-09-18 11:23:08 +08:00
										 |  |  |  | Unicode true
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Includes
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | !include nsDialogs.nsh
 | 
					
						
							|  |  |  |  | !include MUI2.nsh
 | 
					
						
							|  |  |  |  | !include x64.nsh
 | 
					
						
							|  |  |  |  | !include LogicLib.nsh
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # File Info
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | !define PRODUCT_NAME "RustDesk"
 | 
					
						
							|  |  |  |  | !define PRODUCT_DESCRIPTION "Installer for ${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | !define COPYRIGHT "Copyright © 2021"
 | 
					
						
							|  |  |  |  | !define VERSION "1.1.6"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | VIProductVersion "${VERSION}.0"
 | 
					
						
							|  |  |  |  | VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | VIAddVersionKey "ProductVersion" "${VERSION}"
 | 
					
						
							|  |  |  |  | VIAddVersionKey "FileDescription" "${PRODUCT_DESCRIPTION}"
 | 
					
						
							|  |  |  |  | VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
 | 
					
						
							|  |  |  |  | VIAddVersionKey "FileVersion" "${VERSION}.0"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Installer Attributes
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Name "${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | Outfile "rustdesk-${VERSION}-setup.exe"
 | 
					
						
							|  |  |  |  | Caption "Setup - ${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | BrandingText "${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ShowInstDetails show
 | 
					
						
							|  |  |  |  | RequestExecutionLevel admin
 | 
					
						
							|  |  |  |  | SetOverwrite on
 | 
					
						
							|  |  |  |  |  
 | 
					
						
							|  |  |  |  | InstallDir "$PROGRAMFILES64\${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Pages
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | !define MUI_ICON "tray-icon.ico"
 | 
					
						
							|  |  |  |  | !define MUI_ABORTWARNING
 | 
					
						
							|  |  |  |  | !define MUI_LANGDLL_ALLLANGUAGES
 | 
					
						
							|  |  |  |  | !define MUI_FINISHPAGE_SHOWREADME ""
 | 
					
						
							|  |  |  |  | !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
 | 
					
						
							|  |  |  |  | !define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut"
 | 
					
						
							|  |  |  |  | !define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDesktopShortcut
 | 
					
						
							|  |  |  |  | !define MUI_FINISHPAGE_RUN "$INSTDIR\${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | !insertmacro MUI_PAGE_DIRECTORY
 | 
					
						
							|  |  |  |  | !insertmacro MUI_PAGE_INSTFILES
 | 
					
						
							|  |  |  |  | !insertmacro MUI_PAGE_FINISH
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Language
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-14 19:20:22 +08:00
										 |  |  |  | !insertmacro MUI_LANGUAGE "English" ; The first language is the default language
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "French"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "German"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Spanish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "SpanishInternational"
 | 
					
						
							| 
									
										
										
										
											2022-09-18 11:23:08 +08:00
										 |  |  |  | !insertmacro MUI_LANGUAGE "SimpChinese"
 | 
					
						
							| 
									
										
										
										
											2023-02-14 19:20:22 +08:00
										 |  |  |  | !insertmacro MUI_LANGUAGE "TradChinese"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Japanese"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Korean"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Italian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Dutch"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Danish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Swedish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Norwegian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Finnish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Greek"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Russian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Portuguese"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "PortugueseBR"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Polish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Ukrainian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Czech"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Slovak"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Croatian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Bulgarian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Hungarian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Thai"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Romanian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Latvian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Macedonian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Estonian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Turkish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Lithuanian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Slovenian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Serbian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "SerbianLatin"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Arabic"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Farsi"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Hebrew"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Indonesian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Mongolian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Luxembourgish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Albanian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Breton"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Belarusian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Icelandic"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Malay"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Bosnian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Kurdish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Irish"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Uzbek"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Galician"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Afrikaans"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Catalan"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Esperanto"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Asturian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Basque"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Pashto"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "ScotsGaelic"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Georgian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Vietnamese"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Welsh"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Armenian"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Corsican"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Tatar"
 | 
					
						
							|  |  |  |  | !insertmacro MUI_LANGUAGE "Hindi"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-18 11:23:08 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Sections
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Section "Install"
 | 
					
						
							|  |  |  |  |   SetOutPath $INSTDIR
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   # Regkeys
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_NAME} (x64)"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${VERSION}"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" '"$INSTDIR\${PRODUCT_NAME}.exe" --uninstall'
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "InstallLocation" "$INSTDIR"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "Carriez, Inc."
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "HelpLink" "https://www.rustdesk.com/"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout" "https://www.rustdesk.com/"
 | 
					
						
							|  |  |  |  |   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLUpdateInfo" "https://www.rustdesk.com/"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   nsExec::Exec "taskkill /F /IM ${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  |   Sleep 500 ; Give time for process to be completely killed
 | 
					
						
							|  |  |  |  |   File "${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   SetShellVarContext all
 | 
					
						
							|  |  |  |  |   CreateShortCut "$INSTDIR\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--uninstall" "msiexec.exe"
 | 
					
						
							|  |  |  |  |   CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
 | 
					
						
							|  |  |  |  |   CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  |   CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--uninstall" "msiexec.exe"
 | 
					
						
							|  |  |  |  |   CreateShortCut "$SMSTARTUP\${PRODUCT_NAME} Tray.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--tray"
 | 
					
						
							|  |  |  |  |   
 | 
					
						
							|  |  |  |  |   nsExec::Exec 'sc create ${PRODUCT_NAME} start=auto DisplayName="${PRODUCT_NAME} Service" binPath= "\"$INSTDIR\${PRODUCT_NAME}.exe\" --service"'
 | 
					
						
							|  |  |  |  |   nsExec::Exec 'netsh advfirewall firewall add rule name="${PRODUCT_NAME} Service" dir=in action=allow program="$INSTDIR\${PRODUCT_NAME}.exe" enable=yes'
 | 
					
						
							|  |  |  |  |   nsExec::Exec 'sc start ${PRODUCT_NAME}'
 | 
					
						
							|  |  |  |  | SectionEnd
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ####################################################################
 | 
					
						
							|  |  |  |  | # Functions
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Function .onInit
 | 
					
						
							|  |  |  |  |   # RustDesk is 64-bit only
 | 
					
						
							|  |  |  |  |   ${IfNot} ${RunningX64}
 | 
					
						
							|  |  |  |  |     MessageBox MB_ICONSTOP "${PRODUCT_NAME} is 64-bit only!"
 | 
					
						
							|  |  |  |  |     Quit
 | 
					
						
							|  |  |  |  |   ${EndIf}
 | 
					
						
							|  |  |  |  |   ${DisableX64FSRedirection}
 | 
					
						
							|  |  |  |  |   SetRegView 64
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   !insertmacro MUI_LANGDLL_DISPLAY
 | 
					
						
							|  |  |  |  | FunctionEnd
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Function CreateDesktopShortcut
 | 
					
						
							|  |  |  |  |   CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe"
 | 
					
						
							|  |  |  |  | FunctionEnd
 |