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
2023-06-29 11:37:09 +08:00
!define MUI_ICON " icon.ico "
2022-09-18 11:23:08 +08:00
!define MUI_ABORTWARNING
!define MUI_LANGDLL_ALLLANGUAGES
!define MUI_FINISHPAGE_SHOWREADME " "
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
2023-11-06 20:12:01 +08:00
!define MUI_FINISHPAGE_SHOWREADME_TEXT " Create desktop shortcut "
2022-09-18 11:23:08 +08:00
!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 "
2024-03-13 21:12:04 +08:00
WriteRegStr HKLM " Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME} " " Publisher " " Purslane Ltd. "
2022-09-18 11:23:08 +08:00
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