;-------------------------------- ;Include Modern UI !include "MUI2.nsh" ;-------------------------------- ;General Name "YourApplicationName" OutFile "YourApplicationNameSetup.exe" BrandingText "Software Onekit" InstallDir "$PROGRAMFILES\YourApplicationName" InstallDirRegKey HKCU "Software\YourApplicationName" "" SetCompressor lzma RequestExecutionLevel admin ;-------------------------------- ;Variables Var StartMenuFolder ;-------------------------------- ;Interface Configuration !define MUI_ICON "Icons\YourApplicationName_icon_48x48.ico" !define MUI_WELCOMEFINISHPAGE_BITMAP "Icons\YourApplicationName_leftside_164x314.bmp" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "Icons\YourApplicationName_header_150x57.bmp" !define MUI_HEADERIMAGE_RIGHT !define MUI_ABORTWARNING ;-------------------------------- ;Language Selection Dialog Settings ;Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" !define MUI_LANGDLL_REGISTRY_KEY "Software\YourApplicationName" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" ;-------------------------------- ;Pages ; !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\YourApplicationName" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_RUN !define MUI_FINISHPAGE_RUN_TEXT $(SMMessage) !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Japanese" !insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Portuguese" ;-------------------------------- ;Reserve Files ;If you are using solid compression, files that are required before ;the actual installation should be stored first in the data block, ;because this will make your installer start faster. !insertmacro MUI_RESERVEFILE_LANGDLL ;-------------------------------- ;Installer Sections Section "Dummy Section" SecDummy SetOutPath $INSTDIR WriteRegStr HKCU "Software\YourApplicationName" "" $INSTDIR File /r files\*.* WriteRegStr HKLM "SOFTWARE\YourApplicationName" "Install_Dir" "$INSTDIR" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" "DisplayName" "YourApplicationName" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" "NoRepair" 1 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\YourApplicationName.lnk" "$INSTDIRYourApplicationName.exe" "" "$INSTDIR\YourApplicationName.exe" 0 SetShellVarContext All CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\YourApplicationName.lnk" "$INSTDIR\YourApplicationName.exe" "" "$INSTDIR\YourApplicationName.exe" 0 !insertmacro MUI_STARTMENU_WRITE_END CreateShortCut "$DESKTOP\YourApplicationName.lnk" "$INSTDIR\YourApplicationName.exe" "" "$INSTDIR\YourApplicationName.exe" 0 WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd ;-------------------------------- ;Descriptions LicenseLangString license ${LANG_ENGLISH} "AC-licencia-en.rtf" LicenseLangString license ${LANG_SPANISH} "AC-licencia-es.rtf" LicenseLangString license ${LANG_FRENCH} "AC-licencia-french.rtf" LicenseLangString license ${LANG_DUTCH} "AC-licencia-dutch.rtf" LicenseLangString license ${LANG_JAPANESE} "AC-licencia-japanese.rtf" LicenseLangString license ${LANG_SWEDISH} "AC-licencia-swedish.rtf" LicenseLangString license ${LANG_GERMAN} "AC-licencia-german.rtf" LicenseLangString license ${LANG_DANISH} "AC-licencia-danish.rtf" LicenseLangString license ${LANG_NORWEGIAN} "AC-licencia-norwegian.rtf" LicenseLangString license ${LANG_ITALIAN} "AC-licencia-italian.rtf" LicenseLangString license ${LANG_PORTUGUESE} "AC-licencia-portuguese.rtf" LangString SMMessage ${LANG_ENGLISH} "Start YourApplicationName" LangString SMMessage ${LANG_SPANISH} "Comenzar YourApplicationName" LangString SMMessage ${LANG_FRENCH} "Commencer YourApplicationName" LangString SMMessage ${LANG_DUTCH} "Beginnen YourApplicationName" LangString SMMessage ${LANG_JAPANESE} "YourApplicationName" LangString SMMessage ${LANG_SWEDISH} "Starta YourApplicationName" LangString SMMessage ${LANG_GERMAN} "Starten YourApplicationName" LangString SMMessage ${LANG_DANISH} "Start YourApplicationName" LangString SMMessage ${LANG_NORWEGIAN} "Begynn YourApplicationName" LangString SMMessage ${LANG_ITALIAN} "Iniziare YourApplicationName" LangString SMMessage ${LANG_PORTUGUESE} "Iniciar YourApplicationName" ;-------------------------------- ;Uninstaller Section Section "Uninstall" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" DeleteRegKey HKLM "SOFTWARE\YourApplicationName" Delete $INSTDIR\*.* RMDir "$INSTDIR" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Delete "$SMPROGRAMS\$StartMenuFolder\*.*" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" SetShellVarContext All Delete "$SMPROGRAMS\$StartMenuFolder\*.*" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" Delete "$DESKTOP\YourApplicationName.lnk" DeleteRegKey /ifempty HKCU "Software\YourApplicationName" SectionEnd ;-------------------------------- ;Uninstaller Functions Function un.onInit !insertmacro MUI_UNGETLANGUAGE FunctionEnd Function LaunchLink ExecShell "" "$INSTDIR\YourApplicationName.exe" FunctionEnd Function .onInit ReadRegStr $R0 HKLM "SOFTWARE\YourApplicationName" "Install_Dir" ;MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION $R0 StrCmp $R0 "" done ;MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "YourApplicationName is already installed. $\n$\nClick `OK` to remove the \ ;previous version or `Cancel` to cancel this upgrade." \ ;IDOK uninst ;Abort ;Run the uninstaller ;uninst: ; Run the uninstaller silently. DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\YourApplicationName" DeleteRegKey HKLM "SOFTWARE\YourApplicationName" Delete $R0\*.* RMDir "$R0" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Delete "$SMPROGRAMS\$StartMenuFolder\*.*" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" SetShellVarContext All Delete "$SMPROGRAMS\$StartMenuFolder\*.*" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" Delete "$DESKTOP\YourApplicationName.lnk" DeleteRegKey /ifempty HKCU "Software\YourApplicationName" done: ;Language selection dialog Push "" Push ${LANG_ENGLISH} Push English Push ${LANG_SPANISH} Push Spanish Push ${LANG_FRENCH} Push French Push ${LANG_DUTCH} Push Dutch Push ${LANG_JAPANESE} Push Japanese Push ${LANG_SWEDISH} Push Swedish Push ${LANG_GERMAN} Push German Push ${LANG_DANISH} Push Danish Push ${LANG_NORWEGIAN} Push Norwegian Push ${LANG_ITALIAN} Push Italian Push ${LANG_PORTUGUESE} Push Portuguese Push A ; A means auto count languages ; for the auto count to work the first empty push (Push "") must remain LangDLL::LangDialog "Installer Language" "Please select the language of the installer" Pop $LANGUAGE StrCmp $LANGUAGE "cancel" 0 +2 Abort FunctionEnd