123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- 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 "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
- !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"
- !insertmacro MUI_LANGUAGE "SimpChinese"
- !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"
- ####################################################################
- # 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" "Purslane Ltd."
- 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
|