!define SETUP_VERSION "1.3.1.4" ; SetDefault version !include "common.nsi" !define PRODUCT_NAME "${KM_NAME}" !define PRODUCT_VERSION "${KM_VERSION}" ; K-Meleon version !define PRODUCT_WEB_SITE "${KM_HOME}" !define PRODUCT_MOZVERS "${mozVERSION}" !define PRODUCT_PUBLISHER "${KM_TEAM}" !define PRODUCT_BUILD "${PRODUCT_NAME} ${PRODUCT_VERSION}" !define PRODUCT_KEY "Software\${PRODUCT_NAME}" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define CLIENT "Software\Clients\StartMenuInternet" !define MOZILLA "Software\Mozilla" !ifndef OUTDIR !define OUTDIR "" !endif !define SETDEF "SetDefault" ;-------------------------------- ;Global Variables for translation purpose ; Caption Var /Global _SetupCaption Var /Global _SetupCaption_1 Var /Global _SetupCaption_2 ; Welcome Var /Global _MUI_WELCOMEPAGE_TITLE Var /Global _MUI_WELCOMEPAGE_TITLE_1 Var /Global _MUI_WELCOMEPAGE_TITLE_2 Var /Global _MUI_WELCOMEPAGE_TEXT ; Directory Var /Global _MUI_DIRECTORYPAGE_HEADER_TEXT Var /Global _MUI_DIRECTORYPAGE_HEADER_SUBTEXT Var /Global _MUI_DIRECTORYPAGE_TEXT_TOP Var /Global _MUI_DIRECTORYPAGE_TEXT_TOP_1 Var /Global _MUI_DIRECTORYPAGE_TEXT_TOP_2 Var /Global _MUI_DIRECTORYPAGE_TEXT_TOP_3 Var /Global _DirSubText Var /Global _BrowseBtn Var /Global _DirBrowseText ; Components Var /Global _MUI_COMPONENTSPAGE_HEADER_TEXT Var /Global _MUI_COMPONENTSPAGE_HEADER_SUBTEXT Var /Global _MUI_COMPONENTSPAGE_TEXT_TOP Var /Global _MUI_COMPONENTSPAGE_TEXT_COMPLIST Var /Global _MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO Var /Global _MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE ; Installing Var /Global _MUI_TEXT_INSTALLING_TITLE Var /Global _MUI_TEXT_INSTALLING_SUBTITLE Var /Global _MUI_TEXT_FINISH_TITLE Var /Global _MUI_TEXT_FINISH_SUBTITLE Var /Global _MUI_INSTFILESPAGE_HEADER_TEXT Var /Global _MUI_INSTFILESPAGE_HEADER_SUBTEXT Var /Global _MUI_INSTFILESPAGE_FINISHHEADER_TEXT Var /Global _MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT Var /Global _InstallBtn Var /Global _Completed ; General buttons Var /Global _BackBtn Var /Global _NextBtn Var /Global _CancelBtn Var /Global _CloseBtn ; Main section Var /Global _SecMain Var /Global _DESC_SecMain Var /Global _SET_SecMain ; Windows Browser section Var /Global _SecDefWindowsBrowser Var /Global _DESC_SecDefWindowsBrowser Var /Global _SET_SecDefWindowsBrowser ; Assoc proto section Var /Global _SecAssoc Var /Global _DESC_SecAssoc ; Protocols section Var /Global _SecAssocProto Var /Global _DESC_SecAssocProto ; Http section Var /Global _SecHttp Var /Global _DESC_SecHttp Var /Global _SET_SecHttp ; Https section Var /Global _SecHttps Var /Global _DESC_SecHttps Var /Global _SET_SecHttps ; Extensions section Var /Global _SD_DocumentName ; Assoc Ext section Var /Global _SecAssocExt Var /Global _DESC_SecAssocExt ; Htm section Var /Global _SecHtm Var /Global _DESC_SecHtm Var /Global _SET_SecHtm ; Html section Var /Global _SecHtml Var /Global _DESC_SecHtml Var /Global _SET_SecHtml ; sHtml section Var /Global _SecShtml Var /Global _DESC_SecShtml Var /Global _SET_SecShtml ; xHt section Var /Global _SecXht Var /Global _DESC_SecXht Var /Global _SET_SecXht ; xHtml section Var /Global _SecXhtml Var /Global _DESC_SecXhtml Var /Global _SET_SecXhtml ; Shortcuts section Var /Global _SecShortcuts Var /Global _DESC_SecShortcuts ; Desktop section Var /Global _SecDesktop Var /Global _DESC_SecDesktop Var /Global _SET_SecDesktop ; Startup section Var /Global _SecStartMenu Var /Global _DESC_SecStartMenu Var /Global _SET_SecStartMenu ; QuickLaunch section Var /Global _SecQuickLaunch Var /Global _DESC_SecQuickLaunch Var /Global _SET_SecQuickLaunch ; Loader section ; Var /Global _PRODUCT_NAME_LOADER Var /Global _SecLoader Var /Global _DESC_SecLoader Var /Global _SET_SecLoader ; No K-Meleon Folder Message Var /Global _NotDetected ; Abort message Var /Global _MUI_ABORTWARNING_TEXT Var /Global _MUI_ABORTWARNING_TEXT_1 Var /Global _MUI_ABORTWARNING_TEXT_2 ;-------------------------------- ;Include Modern UI !define MUI_COMPONENTSPAGE_SMALLDESC !include "MUI.nsh" !include "Sections.nsh" ; !include "${NSISDIR}\Contrib\Modern UI\System.nsh" ;-------------------------------- ;Include Windows SendMessage !include "WinMessages.nsh" !define Startup "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ;-------------------------------- ;Global Variable Var /Global UserIsAdmin ;-------------------------------- ;Version tab in properties VIProductVersion "${SETUP_VERSION}" VIAddVersionKey Comments "${PRODUCT_NAME} ${SETDEF} ${SETUP_VERSION}" VIAddVersionKey CompanyName "${KM_TEAM}" VIAddVersionKey FileDescription "${PRODUCT_NAME} Setup Assistant" VIAddVersionKey FileVersion "${SETUP_VERSION}" VIAddVersionKey InternalName "${PRODUCT_NAME} ${SETDEF} ${SETUP_VERSION}" VIAddVersionKey LegalCopyright "${KM_COPYRIGHT}" VIAddVersionKey LegalTrademarks "${PRODUCT_WEB_SITE}" VIAddVersionKey OriginalFilename "${SETDEF}.exe" VIAddVersionKey PrivateBuild "" VIAddVersionKey ProductName "${PRODUCT_NAME} ${SETDEF}" VIAddVersionKey ProductVersion "${SETUP_VERSION}" VIAddVersionKey SpecialBuild "" ;-------------------------------- ; MUI Settings !define MUI_ABORTWARNING !define MUI_ABORTWARNING_TEXT "$_MUI_ABORTWARNING_TEXT" !define MUI_ICON "${PRODUCT_NAME}.ico" !define MUI_UNICON "${PRODUCT_NAME}.ico" !define MUI_CHECKBITMAP "${NSISDIR}\Contrib\Icons\modern.bmp" ; Welcome/Finish pages parameters !define MUI_WELCOMEFINISHPAGE_BITMAP "${PRODUCT_NAME}.bmp" !define MUI_WELCOMEPAGE_TITLE $_MUI_WELCOMEPAGE_TITLE !define MUI_WELCOMEPAGE_TITLE_3LINES !define MUI_WELCOMEPAGE_TEXT "$_MUI_WELCOMEPAGE_TEXT ${SETUP_VERSION}" !insertmacro MUI_PAGE_WELCOME ; Directory page parameters !define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeave !define MUI_PAGE_HEADER_TEXT $_MUI_DIRECTORYPAGE_HEADER_TEXT !define MUI_PAGE_HEADER_SUBTEXT $_MUI_DIRECTORYPAGE_HEADER_SUBTEXT !define MUI_DIRECTORYPAGE_TEXT_TOP $_MUI_DIRECTORYPAGE_TEXT_TOP !insertmacro MUI_PAGE_DIRECTORY ; Components page parameters !define MUI_PAGE_HEADER_TEXT "$_MUI_COMPONENTSPAGE_HEADER_TEXT" !define MUI_PAGE_HEADER_SUBTEXT "$_MUI_COMPONENTSPAGE_HEADER_SUBTEXT" !define MUI_COMPONENTSPAGE_TEXT_TOP "$_MUI_COMPONENTSPAGE_TEXT_TOP" !define MUI_COMPONENTSPAGE_TEXT_COMPLIST "$_MUI_COMPONENTSPAGE_TEXT_COMPLIST" !define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "$_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO" !define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "$_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE" !insertmacro MUI_PAGE_COMPONENTS #; Installation page parameters !define MUI_INSTFILESPAGE_HEADER_TEXT "$_MUI_INSTFILESPAGE_HEADER_TEXT" !define MUI_INSTFILESPAGE_HEADER_SUBTEXT "$_MUI_INSTFILESPAGE_HEADER_SUBTEXT" !define MUI_INSTFILESPAGE_FINISHHEADER_TEXT "$_MUI_INSTFILESPAGE_FINISHHEADER_TEXT" !define MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT "$_MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT" !define MUI_PROGRESSBAR smooth !insertmacro MUI_PAGE_INSTFILES ;-------------------------------- ; English Language by default !insertmacro MUI_LANGUAGE "English" ;-------------------------------- ; English messages ; A trick to localize the last untranlatable messages LangString MUI_TEXT_INSTALLING_TITLE ${LANG_ENGLISH} "$_MUI_TEXT_INSTALLING_TITLE" LangString MUI_TEXT_INSTALLING_SUBTITLE ${LANG_ENGLISH} "$_MUI_TEXT_INSTALLING_SUBTITLE" ;-------------------------------- ;MUI parameters ;Name and file Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" Caption "$_SetupCaption" OutFile "${OUTDIR}${SETDEF}.exe" ;Default installation folder and strings InstallDir "$EXEDIR\" DirText "$_MUI_DIRECTORYPAGE_HEADER_SUBTEXT" "$_DirSubText" "$_BrowseBtn" "$_DirBrowseText" InstallButtonText "$_InstallBtn" MiscButtonText "$_BackBtn" "$_NextBtn" "$_CancelBtn" "$_CloseBtn" CompletedText "$_Completed" SpaceTexts "none" ShowInstDetails show ShowUnInstDetails show BrandingText /TRIMRIGHT "${PRODUCT_BUILD}" # ---------------------------------------------------------------------- ; macro Protocol !macro assocProtocol proto desc push $0 ReadRegStr $0 SHCTX "Software\Classes\${proto}" "" StrCmp $0 "${desc}" +3 WriteRegStr SHCTX "${PRODUCT_KEY}\Desktop" "${proto}" $0 WriteRegStr SHCTX "Software\Classes\${proto}" "" "${desc}" ReadRegStr $0 SHCTX "Software\Classes\${proto}\shell\open\command" "" StrCmp $0 '"$INSTDIR\${PRODUCT_NAME}.exe" "%1"' assocProtocol_End WriteRegStr SHCTX "${PRODUCT_KEY}\Desktop" "${proto}\shell\open\command" $0 ReadRegStr $0 SHCTX "Software\Classes\${proto}\DefaultIcon" "" WriteRegStr SHCTX "${PRODUCT_KEY}\Desktop" "${proto}\DefaultIcon" $0 WriteRegStr SHCTX "Software\Classes\${proto}\DefaultIcon" "" "$INSTDIR\${PRODUCT_NAME}.exe,1" WriteRegStr SHCTX "Software\Classes\${proto}\shell\open\command" "" '"$INSTDIR\${PRODUCT_NAME}.exe" "%1"' DeleteRegKey SHCTX "Software\Classes\${proto}\shell\open\ddeexec" WriteRegStr SHCTX "Software\Classes\${proto}\shell\open\ddeexec\Application" "" "${PRODUCT_NAME}" assocProtocol_End: pop $0 !macroend # ---------------------------------------------------------------------- ; macro Extension !macro assocExtension ext type push $0 ReadRegStr $0 SHCTX "Software\Classes\${ext}" "" StrCmp $0 "${PRODUCT_NAME}.HTML" assocExtension_End WriteRegStr SHCTX "${PRODUCT_KEY}\Desktop" "${ext}" $0 WriteRegStr SHCTX "Software\Classes\${ext}" "" "${PRODUCT_NAME}.HTML" ReadRegStr $0 SHCTX "Software\Classes\${ext}" "Content Type" WriteRegStr SHCTX "Software\Classes\${ext}" "Content Type" "${type}" DeleteRegKey SHCTX "Software\Classes\${ext}\PersistentHandler" assocExtension_End: pop $0 !macroend # ---------------------------------------------------------------------- Section $_SecMain SecMain SectionIn 1 DetailPrint "$_SET_SecMain" WriteRegStr HKLM ${MOZILLA}\${PRODUCT_NAME} "GeckoVer" ${PRODUCT_MOZVERS} WriteRegStr HKLM "${MOZILLA}\${PRODUCT_NAME}\bin" "PathToExe" "$INSTDIR\${PRODUCT_NAME}.exe" WriteRegStr HKLM "${MOZILLA}\${PRODUCT_NAME}\Extensions" "Plugins" "$INSTDIR\Plugins" WriteRegStr HKLM "${MOZILLA}\${PRODUCT_NAME}\Extensions" "Components" "$INSTDIR\Components" WriteRegStr HKLM "Software\mozilla.org\Mozilla" "CurrentVersion" ${PRODUCT_MOZVERS} WriteRegStr HKCU "${PRODUCT_KEY}\General" "InstallDir" "$INSTDIR" SectionEnd # ---------------------------------------------------------------------- Section $_SecDefWindowsBrowser SecDefWindowsBrowser DetailPrint "$_SET_SecDefWindowsBrowser" WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe" "" ${PRODUCT_NAME} # WriteRegStr HKLM "Software\Clients\StartMenuInternet\${PRODUCT_NAME}.exe" "LocalizedString" "@$INSTDIR\${PRODUCT_NAME}.exe,-9" WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe\DefaultIcon" "" "$INSTDIR\${PRODUCT_NAME}.exe,0" WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe\Shell\Open\Command" "" "$INSTDIR\${PRODUCT_NAME}.exe" WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe\InstallInfo" "ReinstallCommand" '"$INSTDIR\SetDefault.exe" /S' WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe\InstallInfo" "HideIconsCommand" '"$INSTDIR\SetDefault.exe" /hide' WriteRegStr HKLM "${CLIENT}\${PRODUCT_NAME}.exe\InstallInfo" "ShowIconsCommand" '"$INSTDIR\SetDefault.exe" /show' WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}.exe\InstallInfo" "IconsVisible" 0 SectionEnd # ---------------------------------------------------------------------- SubSection $_SecAssoc SecAssoc Section SectionIn 1 2 RO #XP Start Menu WriteRegStr HKLM ${CLIENT} "" "${PRODUCT_NAME}.exe" IfErrors 0 +3 WriteRegStr HKCU ${CLIENT} "" "${PRODUCT_NAME}.exe" Goto +2 WriteRegStr HKCU ${CLIENT} "" "" StrCmp $UserIsAdmin "true" 0 +3 SetShellVarContext all Goto +2 SetShellVarContext current WriteRegStr SHCTX "Software\Classes\${PRODUCT_NAME}.HTML" "" $_SD_DocumentName WriteRegStr SHCTX "Software\Classes\${PRODUCT_NAME}.HTML\DefaultIcon" "" "$INSTDIR\${PRODUCT_NAME}.exe,1" WriteRegStr SHCTX "Software\Classes\${PRODUCT_NAME}.HTML\shell\open\command" "" '"$INSTDIR\${PRODUCT_NAME}.exe" "%1"' WriteRegStr HKCU "${PRODUCT_KEY}\General" "InstallDir" "$INSTDIR" SendMessage HWND_BROADCAST WM_SETTINGCHANGE 0 "STR:${CLIENT}" /TIMEOUT=5000 SectionEnd SubSection $_SecAssocProto SecAssocProto Section $_SecHttp SecHttp SectionIn 1 DetailPrint "$_SET_SecHttp" !insertmacro assocProtocol "http" "URL:HTTP (HyperText Transfer Protocol)" SectionEnd Section $_SecHttps SecHttps SectionIn 1 DetailPrint "$_SET_SecHttps" !insertmacro assocProtocol "https" "URL:HTTPS (HyperText Transfer Protocol) with Security System" SectionEnd SubSectionEnd SubSection $_SecAssocExt SecAssocExt Section $_SecHtm SecHtm SectionIn 1 DetailPrint "$_SET_SecHtm" !insertmacro assocExtension ".htm" "text/html" SectionEnd Section $_SecHtml SecHtml SectionIn 1 DetailPrint "$_SET_SecHtml" !insertmacro assocExtension ".html" "text/html" SectionEnd Section $_SecShtml SecShtml SectionIn 1 DetailPrint "$_SET_SecShtml" !insertmacro assocExtension ".shtml" "text/html" SectionEnd Section $_SecXht SecXht SectionIn 1 DetailPrint "$_SET_SecXht" !insertmacro assocExtension ".xht" "application/xhtml+xml" SectionEnd Section $_SecXhtml SecXhtml SectionIn 1 DetailPrint "$_SET_SecXhtml" !insertmacro assocExtension ".xhtml" "application/xhtml+xml" SectionEnd SubSectionEnd SubSectionEnd # ---------------------------------------------------------------------- SubSection $_SecShortcuts SecShortcuts Section /o $_SecDesktop SecDesktop DetailPrint "$_SET_SecDesktop" SetShellVarContext current ; shortcut in AllUsers are annoying CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" 0 WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}\InstallInfo" "IconsVisible" 1 SectionEnd Section /o $_SecStartMenu SecStartMenu DetailPrint "$_SET_SecStartMenu" CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "$INSTDIR\${PRODUCT_NAME}.exe" 0 WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}\InstallInfo" "IconsVisible" 1 SectionEnd Section /o $_SecQuickLaunch SecQuickLaunch DetailPrint "$_SET_SecQuickLaunch" CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" 0 WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}\InstallInfo" "IconsVisible" 1 SectionEnd SubSectionEnd # ---------------------------------------------------------------------- Section /o $_SecLoader SecLoader DetailPrint "$_SET_SecLoader" ReadRegStr $9 HKCU "${STARTUP}" "Startup" Push "$9\${PRODUCT_NAME} Loader.lnk" Pop $1 CreateShortCut $1 "$INSTDIR\Loader.exe" SectionEnd # ---------------------------------------------------------------------- ; Function Restore Extension Function restoreExtension Exch $R0 Push $0 StrCmp $UserIsAdmin "true" 0 NotAdmin ReadRegStr $0 HKLM "Software\Classes\$R0" "" StrCmp $0 "${PRODUCT_NAME}.HTML" 0 restoreExtension_End ReadRegStr $0 HKLM "${PRODUCT_KEY}\Desktop" "$R0" IfErrors restoreExtension_End WriteRegStr HKLM "Software\Classes\$R0" "" $0 Goto restoreExtension_End NotAdmin: ReadRegStr $0 HKCU "Software\Classes\$R0" "" StrCmp $0 "${PRODUCT_NAME}.HTML" 0 restoreExtension_End ReadRegStr $0 HKCU "${PRODUCT_KEY}\Desktop" "$R0" StrCmp $0 "" +3 0 WriteRegStr HKCU "Software\Classes\$R0" "" $0 Goto restoreExtension_End DeleteRegKey HKCU "Software\Classes\$R0" restoreExtension_End: Pop $0 Pop $R0 FunctionEnd # ---------------------------------------------------------------------- ; Function Restore Protocol Function restoreProtocol Exch $R1 Exch Exch $R0 StrCmp $UserIsAdmin "true" 0 NotAdmin ReadRegStr $0 HKLM "Software\Classes\$R0" "" StrCmp $0 "$R1" 0 +3 ReadRegStr $0 HKLM "${PRODUCT_KEY}\Desktop" "$R0" IfErrors restoreProtocol_End WriteRegStr HKLM "Software\Classes\$R0" "" $0 ReadRegStr $0 HKLM "Software\Classes\$R0\shell\open\command" "" StrCmp $0 '"$INSTDIR\${PRODUCT_NAME}.exe" "%1"' 0 restoreProtocol_End ReadRegStr $0 HKLM "${PRODUCT_KEY}\Desktop" "$R0\DefaultIcon" IfErrors restoreProtocol_End WriteRegStr HKLM "Software\Classes\$R0\DefaultIcon" "" $0 ReadRegStr $0 HKLM "${PRODUCT_KEY}\Desktop" "$R0\shell\open\command" IfErrors restoreProtocol_End WriteRegStr HKLM "Software\Classes\$R0\shell\open\command" "" $0 DeleteRegKey HKLM "Software\Classes\$R0\shell\open\ddeexec" Goto restoreProtocol_End NotAdmin: ReadRegStr $0 HKCU "Software\Classes\$R0" "" StrCmp $0 "$R1" 0 +3 ReadRegStr $0 HKCU "${PRODUCT_KEY}\Desktop" "$R0" StrCmp $0 "" 0 +3 DeleteRegKey HKCU "Software\Classes\$R0" Goto restoreProtocol_End WriteRegStr HKCU "Software\Classes\$R0" "" $0 ReadRegStr $0 HKCU "Software\Classes\$R0\shell\open\command" "" StrCmp $0 '"$INSTDIR\${PRODUCT_NAME}.exe" "%1"' 0 restoreProtocol_End ReadRegStr $0 HKCU "${PRODUCT_KEY}\Desktop" "$R0\DefaultIcon" WriteRegStr HKCU "Software\Classes\$R0\DefaultIcon" "" $0 ReadRegStr $0 HKCU "${PRODUCT_KEY}\Desktop" "$R0\shell\open\command" WriteRegStr HKCU "Software\Classes\$R0\shell\open\command" "" $0 DeleteRegKey HKCU "Software\Classes\$R0\shell\open\ddeexec" restoreProtocol_End: Pop $R0 Pop $0 Pop $R0 Pop $R1 FunctionEnd # ---------------------------------------------------------------------- Function DirectoryLeave IfFileExists "$INSTDIR\${PRODUCT_NAME}.exe" KMFound MessageBox MB_RETRYCANCEL|MB_ICONSTOP "$_NotDetected$\n$\n ''$INSTDIR'' !!! $\n" IDRETRY Retry MessageBox MB_YESNO|MB_ICONEXCLAMATION $_MUI_ABORTWARNING_TEXT IDNO Retry Quit Retry: Abort KMFound: FunctionEnd # ---------------------------------------------------------------------- Function GetParameters Push $R0 Push $R1 Push $R2 Push $R3 StrCpy $R2 1 StrLen $R3 $CMDLINE ;Check for quote or space StrCpy $R0 $CMDLINE $R2 StrCmp $R0 '"' 0 +3 StrCpy $R1 '"' Goto loop StrCpy $R1 " " loop: IntOp $R2 $R2 + 1 StrCpy $R0 $CMDLINE 1 $R2 StrCmp $R0 $R1 get StrCmp $R2 $R3 get Goto loop get: IntOp $R2 $R2 + 1 StrCpy $R0 $CMDLINE 1 $R2 StrCmp $R0 " " get StrCpy $R0 $CMDLINE "" $R2 Pop $R3 Pop $R2 Pop $R1 Exch $R0 FunctionEnd # ---------------------------------------------------------------------- Function .onInit Call GetParameters Pop $1 ; StrCmp $1 "/u" TestLoader 0 StrCmp $1 "/s" Lang_En 0 strcmp $1 "" Lang_En 0 strcmp $1 "en-US" Lang_En SearchLocale SearchLocale: IfFileExists $EXEDIR\locales\$1\setdefault.ini ReadLocale Lang_En ReadLocale: strcpy $0 $EXEDIR\locales\$1\SetDefault.ini Push $0 call Translate_Strings goto TestLoader Lang_En: call Messages_En TestLoader: ReadRegStr $9 HKCU "${STARTUP}" "Startup" Push "$9\${PRODUCT_NAME} Loader.lnk" Pop $8 IfFileExists $8 0 Params SectionSetFlags ${SecLoader} ${SF_SELECTED} Params: Call IsUserAdmin Exch $R0 StrCpy $UserIsAdmin $R0 StrCmp $1 "/u" 0 onInit_noUn Push ".htm" Call restoreExtension Push ".html" Call restoreExtension Push ".shtml" Call restoreExtension Push ".xht" Call restoreExtension Push ".xhtml" Call restoreExtension Push "http" Push "URL:HTTP (HyperText Transfer Protocol)" Call restoreProtocol Push "https" Push "URL:HTTPS (HyperText Transfer Protocol) with Security System" Call restoreProtocol System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' Quit onInit_noUn: # This is probably more annoying than anything else. StrCmp $1 "/hide" 0 onInit_noHide SetShellVarContext all Delete $DESKTOP\${PRODUCT_NAME}.lnk RMDir /r $SMPROGRAMS\${PRODUCT_NAME} # Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}\InstallInfo" "IconsVisible" 0 Quit onInit_noHide: StrCmp $1 "/show" 0 onInit_noShow SetShellVarContext all CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" 0 # CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" 0 CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "$INSTDIR\${PRODUCT_NAME}.exe" 0 WriteRegDWORD HKLM "${CLIENT}\${PRODUCT_NAME}\InstallInfo" "IconsVisible" 1 Quit onInit_noShow: IfSilent 0 +3 IfFileExists "$INSTDIR\${PRODUCT_NAME}.exe" +2 Quit FunctionEnd # ---------------------------------------------------------------------- Function .onInstSuccess SectionGetFlags ${SecLoader} $0 IntCmp $0 ${SF_SELECTED} Notify 0 Delete "$9\${PRODUCT_NAME} Loader.lnk" Notify: System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' FunctionEnd # ---------------------------------------------------------------------- Function IsUserAdmin Push $R0 Push $R1 Push $R2 ClearErrors UserInfo::GetName IfErrors Win9x Pop $R1 UserInfo::GetAccountType Pop $R2 StrCmp $R2 "Admin" 0 Continue ; Observation: I get here when running Win98SE. (Lilla) ; The functions UserInfo.dll looks for are there on Win98 too, ; but just don't work. So UserInfo.dll, knowing that admin isn't required ; on Win98, returns admin anyway. (per kichik) ; MessageBox MB_OK 'User "$R1" is in the Administrators group' StrCpy $R0 "true" Goto Done Continue: ; You should still check for an empty string because the functions ; UserInfo.dll looks for may not be present on Windows 95. (per kichik) StrCmp $R2 "" Win9x StrCpy $R0 "false" ;MessageBox MB_OK 'User "$R1" is in the "$R2" group' Goto Done Win9x: ; comment/message below is by UserInfo.nsi author: ; This one means you don't need to care about admin or ; not admin because Windows 9x doesn't either ;MessageBox MB_OK "Error! This DLL can't run under Windows 9x!" StrCpy $R0 "true" Done: ;MessageBox MB_OK 'User= "$R1" AccountType= "$R2" IsUserAdmin= "$R0"' Pop $R2 Pop $R1 Exch $R0 FunctionEnd # ---------------------------------------------------------------------- Function Translate_Strings ; inifile name Pop $1 ; Read lines ; Caption # ReadIniStr $_SetupCaption $1 SetDefault SetupCaption ReadIniStr $_SetupCaption_1 $1 SetDefault SetupCaption_1 ReadIniStr $_SetupCaption_2 $1 SetDefault SetupCaption_2 strcpy $_SetupCaption "$_SetupCaption_1${PRODUCT_VERSION}$_SetupCaption_2" ; Welcome # ReadIniStr $_MUI_WELCOMEPAGE_TITLE $1 SetDefault MUI_WELCOMEPAGE_TITLE ReadIniStr $_MUI_WELCOMEPAGE_TITLE_1 $1 SetDefault MUI_WELCOMEPAGE_TITLE_1 ReadIniStr $_MUI_WELCOMEPAGE_TITLE_2 $1 SetDefault MUI_WELCOMEPAGE_TITLE_2 strcpy $_MUI_WELCOMEPAGE_TITLE "$_MUI_WELCOMEPAGE_TITLE_1${PRODUCT_VERSION}$_MUI_WELCOMEPAGE_TITLE_2" ReadIniStr $_MUI_WELCOMEPAGE_TEXT $1 SetDefault MUI_WELCOMEPAGE_TEXT ; Directory ReadIniStr $_MUI_DIRECTORYPAGE_TEXT_TOP_1 $1 SetDefault MUI_DIRECTORYPAGE_TEXT_TOP_1 ReadIniStr $_MUI_DIRECTORYPAGE_TEXT_TOP_2 $1 SetDefault MUI_DIRECTORYPAGE_TEXT_TOP_2 ReadIniStr $_MUI_DIRECTORYPAGE_TEXT_TOP_3 $1 SetDefault MUI_DIRECTORYPAGE_TEXT_TOP_3 # strcpy $_MUI_DIRECTORYPAGE_TEXT_TOP "$_MUI_DIRECTORYPAGE_TEXT_TOP_1 $\n$\n$_MUI_DIRECTORYPAGE_TEXT_TOP_2" strcpy $_MUI_DIRECTORYPAGE_TEXT_TOP "$_MUI_DIRECTORYPAGE_TEXT_TOP_1 $\n$\n$_MUI_DIRECTORYPAGE_TEXT_TOP_2${PRODUCT_VERSION}$_MUI_DIRECTORYPAGE_TEXT_TOP_3" ReadIniStr $_MUI_DIRECTORYPAGE_HEADER_TEXT $1 SetDefault MUI_DIRECTORYPAGE_HEADER_TEXT ReadIniStr $_MUI_DIRECTORYPAGE_HEADER_SUBTEXT $1 SetDefault MUI_DIRECTORYPAGE_HEADER_SUBTEXT ReadIniStr $_DirSubText $1 SetDefault DirSubText ReadIniStr $_BrowseBtn $1 SetDefault BrowseBtn ReadIniStr $_DirBrowseText $1 SetDefault DirBrowseText ; Components ReadIniStr $_MUI_COMPONENTSPAGE_HEADER_TEXT $1 SetDefault MUI_COMPONENTSPAGE_HEADER_TEXT ReadIniStr $_MUI_COMPONENTSPAGE_HEADER_SUBTEXT $1 SetDefault MUI_COMPONENTSPAGE_HEADER_SUBTEXT ReadIniStr $_MUI_COMPONENTSPAGE_TEXT_TOP $1 SetDefault MUI_COMPONENTSPAGE_TEXT_TOP ReadIniStr $_MUI_COMPONENTSPAGE_TEXT_COMPLIST $1 SetDefault MUI_COMPONENTSPAGE_TEXT_COMPLIST ReadIniStr $_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO $1 SetDefault MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO ReadIniStr $_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE $1 SetDefault MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE ; Installing ReadIniStr $_MUI_TEXT_INSTALLING_TITLE $1 SetDefault MUI_TEXT_INSTALLING_TITLE ReadIniStr $_MUI_TEXT_INSTALLING_SUBTITLE $1 SetDefault MUI_TEXT_INSTALLING_SUBTITLE ReadIniStr $_MUI_TEXT_FINISH_TITLE $1 SetDefault MUI_TEXT_FINISH_TITLE ReadIniStr $_MUI_TEXT_FINISH_SUBTITLE $1 SetDefault MUI_TEXT_FINISH_SUBTITLE ReadIniStr $_MUI_INSTFILESPAGE_HEADER_TEXT $1 SetDefault MUI_INSTFILESPAGE_HEADER_TEXT ReadIniStr $_MUI_INSTFILESPAGE_HEADER_SUBTEXT $1 SetDefault MUI_INSTFILESPAGE_HEADER_SUBTEXT ReadIniStr $_MUI_INSTFILESPAGE_FINISHHEADER_TEXT $1 SetDefault MUI_INSTFILESPAGE_FINISHHEADER_TEXT ReadIniStr $_MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT $1 SetDefault MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT ReadIniStr $_InstallBtn $1 SetDefault InstallBtn ReadIniStr $_Completed $1 SetDefault Completed ; General Buttons ReadIniStr $_BackBtn $1 SetDefault BackBtn ReadIniStr $_NextBtn $1 SetDefault NextBtn ReadIniStr $_CancelBtn $1 SetDefault CancelBtn ReadIniStr $_CloseBtn $1 SetDefault CloseBtn ; Main Section ReadIniStr $_SecMain $1 SetDefault SecMain ReadIniStr $_DESC_SecMain $1 SetDefault DESC_SecMain ReadIniStr $_SET_SecMain $1 SetDefault SET_SecMain ; Default Windows Browser ReadIniStr $_SecDefWindowsBrowser $1 SetDefault SecDefWindowsBrowser ReadIniStr $_DESC_SecDefWindowsBrowser $1 SetDefault DESC_SecDefWindowsBrowser ReadIniStr $_SET_SecDefWindowsBrowser $1 SetDefault SET_SecDefWindowsBrowser ; Assoc Section ReadIniStr $_SecAssoc $1 SetDefault SecAssoc ReadIniStr $_DESC_SecAssoc $1 SetDefault DESC_SecAssoc ; Assoc Proto Section ReadIniStr $_SecAssocProto $1 SetDefault SecAssocProto ReadIniStr $_DESC_SecAssocProto $1 SetDefault DESC_SecAssocProto ; Http Section ReadIniStr $_SecHttp $1 SetDefault SecHttp ReadIniStr $_DESC_SecHttp $1 SetDefault DESC_SecHttp ReadIniStr $_SET_SecHttp $1 SetDefault SET_SecHttp ; Https Section ReadIniStr $_SecHttps $1 SetDefault SecHttps ReadIniStr $_DESC_SecHttps $1 SetDefault DESC_SecHttps ReadIniStr $_SET_SecHttps $1 SetDefault SET_SecHttps ; Assoc Ext Section ReadIniStr $_SD_DocumentName $1 SetDefault SD_DocumentName ReadIniStr $_SecAssocExt $1 SetDefault SecAssocExt ReadIniStr $_DESC_SecAssocExt $1 SetDefault DESC_SecAssocExt ; Htm Section ReadIniStr $_SecHtm $1 SetDefault SecHtm ReadIniStr $_DESC_SecHtm $1 SetDefault DESC_SecHtm ReadIniStr $_SET_SecHtm $1 SetDefault SET_SecHtm ; Html Section ReadIniStr $_SecHtml $1 SetDefault SecHtml ReadIniStr $_DESC_SecHtml $1 SetDefault DESC_SecHtml ReadIniStr $_SET_SecHtml $1 SetDefault SET_SecHtml ; sHtml Section ReadIniStr $_SecShtml $1 SetDefault SecShtml ReadIniStr $_DESC_SecShtml $1 SetDefault DESC_SecShtml ReadIniStr $_SET_SecShtml $1 SetDefault SET_SecShtml ; xht Section ReadIniStr $_SecXht $1 SetDefault SecXht ReadIniStr $_DESC_SecXht $1 SetDefault DESC_SecXht ReadIniStr $_SET_SecXht $1 SetDefault SET_SecXht ; xHtml Section ReadIniStr $_SecXhtml $1 SetDefault SecXhtml ReadIniStr $_DESC_SecXhtml $1 SetDefault DESC_SecXhtml ReadIniStr $_SET_SecXhtml $1 SetDefault SET_SecXhtml ; Shortcuts Section ReadIniStr $_SecShortcuts $1 SetDefault SecShortcuts ReadIniStr $_DESC_SecShortcuts $1 SetDefault DESC_SecShortcuts ; Desktop Section ReadIniStr $_SecDesktop $1 SetDefault SecDesktop ReadIniStr $_DESC_SecDesktop $1 SetDefault DESC_SecDesktop ReadIniStr $_SET_SecDesktop $1 SetDefault SET_SecDesktop ; StartMenu Section ReadIniStr $_SecStartMenu $1 SetDefault SecStartMenu ReadIniStr $_DESC_SecStartMenu $1 SetDefault DESC_SecStartMenu ReadIniStr $_SET_SecStartMenu $1 SetDefault SET_SecStartMenu ; QuickLaunch Section ReadIniStr $_SecQuickLaunch $1 SetDefault SecQuickLaunch ReadIniStr $_DESC_SecQuickLaunch $1 SetDefault DESC_SecQuickLaunch ReadIniStr $_SET_SecQuickLaunch $1 SetDefault SET_SecQuickLaunch ; Loader Section ReadIniStr $_SecLoader $1 SetDefault SecLoader ReadIniStr $_DESC_SecLoader $1 SetDefault DESC_SecLoader ReadIniStr $_SET_SecLoader $1 SetDefault SET_SecLoader ; Warning messages ReadIniStr $_NotDetected $1 SetDefault NotDetected # ReadIniStr $_MUI_ABORTWARNING_TEXT $1 SetDefault MUI_ABORTWARNING_TEXT ReadIniStr $_MUI_ABORTWARNING_TEXT_1 $1 SetDefault MUI_ABORTWARNING_TEXT_1 ReadIniStr $_MUI_ABORTWARNING_TEXT_2 $1 SetDefault MUI_ABORTWARNING_TEXT_2 strcpy $_MUI_ABORTWARNING_TEXT "$_MUI_ABORTWARNING_TEXT_1${PRODUCT_VERSION}$_MUI_ABORTWARNING_TEXT_2" FunctionEnd # ---------------------------------------------------------------------- Function Messages_En ; Caption strcpy $_SetupCaption "${PRODUCT_NAME} ${PRODUCT_VERSION} Setup Assistant" ; Welcome strcpy $_MUI_WELCOMEPAGE_TITLE "Welcome to the ${PRODUCT_NAME} ${PRODUCT_VERSION} Setup Assistant !" strcpy $_MUI_WELCOMEPAGE_TEXT "This assistant will help you to integrate ${PRODUCT_NAME} into your Windows operating system:\n\n- Register ${PRODUCT_NAME} as a Mozilla product\n- Register ${PRODUCT_NAME} as a Windows Browser\n- Set ${PRODUCT_NAME} as default browser for various protocols\n- Set ${PRODUCT_NAME} as default browser for various file types\n- Create shortcuts for ${PRODUCT_NAME}\n- Enable/disable the ${PRODUCT_NAME} Loader\n\n\n\n\n\n\n\t\t\t\tSetDefault v." ; Directory strcpy $_MUI_DIRECTORYPAGE_HEADER_TEXT "${PRODUCT_NAME} Install Location" strcpy $_MUI_DIRECTORYPAGE_HEADER_SUBTEXT "Specify the location of the ${PRODUCT_NAME} installation which you want to set up now." strcpy $_MUI_DIRECTORYPAGE_TEXT_TOP "By default, this is the directory where the ${PRODUCT_NAME} installation is located with which you are currently working.$\n$\nIf you have more than one installation of ${PRODUCT_NAME}, you might want to specify the location of a different installation. (This version of ${PRODUCT_NAME} Setup Assistant is compatible with versions 0.9 through ${PRODUCT_VERSION} of ${PRODUCT_NAME}.)" strcpy $_DirSubText "Install Location" strcpy $_BrowseBtn "Browse..." strcpy $_DirBrowseText "Choose the location of a ${PRODUCT_NAME} installation." ; Components strcpy $_MUI_COMPONENTSPAGE_HEADER_TEXT "${PRODUCT_NAME} Setup Options" strcpy $_MUI_COMPONENTSPAGE_HEADER_SUBTEXT "Configure the setup options to be performed." strcpy $_MUI_COMPONENTSPAGE_TEXT_TOP "Check an option to add the related registry entries or file system shortcuts to your system. Uncheck an option to remove them. Click Install to apply your changes." strcpy $_MUI_COMPONENTSPAGE_TEXT_COMPLIST "Available Options:" strcpy $_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "Check an option to add the related entries/files to your system. Uncheck an option to remove them." strcpy $_MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "Description" ; Installing strcpy $_MUI_TEXT_INSTALLING_TITLE "Setting up ${PRODUCT_NAME}" strcpy $_MUI_TEXT_INSTALLING_SUBTITLE "Please wait while setting up ${PRODUCT_NAME}." ; Trick to translate the last strings (see english messages at the top of this file) strcpy $_MUI_TEXT_FINISH_TITLE $(MUI_TEXT_FINISH_TITLE) strcpy $_MUI_TEXT_FINISH_SUBTITLE $(MUI_TEXT_FINISH_SUBTITLE) ; Installing strcpy $_MUI_INSTFILESPAGE_HEADER_TEXT "Setting ${PRODUCT_NAME} parameters" strcpy $_MUI_INSTFILESPAGE_HEADER_SUBTEXT "Setup is in progress..." strcpy $_MUI_INSTFILESPAGE_FINISHHEADER_TEXT "${PRODUCT_NAME} Setup Completed" strcpy $_MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT "${PRODUCT_NAME} setup has completed successfully." strcpy $_InstallBtn "Install" strcpy $_Completed "Completed" ; General Buttons strcpy $_BackBtn "< Back" strcpy $_NextBtn "Next >" strcpy $_CancelBtn "Cancel" strcpy $_CloseBtn "Close" ; Main Section strcpy $_SecMain "Register ${PRODUCT_NAME} as a Mozilla product" strcpy $_DESC_SecMain "These registry entries are needed for Netscape/Mozilla plugins to work correctly." strcpy $_SET_SecMain "${PRODUCT_NAME} registered as a Mozilla product" ; Windows Default Browser strcpy $_SecDefWindowsBrowser "Register ${PRODUCT_NAME} as a Windows Browser" strcpy $_DESC_SecDefWindowsBrowser "Add ${PRODUCT_NAME} to the Windows 2000/XP browser list. You need administrative privileges." strcpy $_SET_SecDefWindowsBrowser "${PRODUCT_NAME} registered as a Windows Browser" ; Assoc Section strcpy $_SecAssoc "Set ${PRODUCT_NAME} as your default browser" strcpy $_DESC_SecAssoc "Set ${PRODUCT_NAME} as your default browser. You need administrative privileges." ; Assoc Protocols Section strcpy $_SecAssocProto "Protocols" strcpy $_DESC_SecAssocProto "Choose the protocols to be opened with ${PRODUCT_NAME} by default." ; Http Section strcpy $_SecHttp "HTTP Protocol" strcpy $_DESC_SecHttp "Open HTTP addresses with ${PRODUCT_NAME} by default." strcpy $_SET_SecHttp "${PRODUCT_NAME} set as your default application for the HTTP protocol" ; Https Section strcpy $_SecHttps "HTTPS Protocol" strcpy $_DESC_SecHttps "Open HTTPS addresses with ${PRODUCT_NAME} by default." strcpy $_SET_SecHttps "${PRODUCT_NAME} set as your default application for the HTTPS protocol" ; Assoc Ext Section strcpy $_SD_DocumentName "Hypertext Markup Language Document" strcpy $_SecAssocExt "File Types" strcpy $_DESC_SecAssocExt "Choose the file types to be opened with ${PRODUCT_NAME} by default." ; Htm Section strcpy $_SecHtm "HTM Files" strcpy $_DESC_SecHtm "Open HTM files with ${PRODUCT_NAME} by default." strcpy $_SET_SecHtm "${PRODUCT_NAME} set as your default application for HTM files" ; Html Section strcpy $_SecHtml "HTML Files" strcpy $_DESC_SecHtml "Open HTML files with ${PRODUCT_NAME} by default." strcpy $_SET_SecHtml "${PRODUCT_NAME} set as your default application for HTML files" ; sHtml Section strcpy $_SecShtml "SHTML Files" strcpy $_DESC_SecShtml "Open SHTML files with ${PRODUCT_NAME} by default." strcpy $_SET_SecShtml "${PRODUCT_NAME} set as your default application for SHTML files" ; Xht Section strcpy $_SecXht "XHT Files" strcpy $_DESC_SecXht "Open XHT files with ${PRODUCT_NAME} by default." strcpy $_SET_SecXht "${PRODUCT_NAME} set as your default application for XHT files" ; Xhtml Section strcpy $_SecXhtml "XHTML Files" strcpy $_DESC_SecXhtml "Open XHTML files with ${PRODUCT_NAME} by default." strcpy $_SET_SecXhtml "${PRODUCT_NAME} set as your default application for XHTML files" ; Shortcuts Section strcpy $_SecShortcuts "Create ${PRODUCT_NAME} Shortcuts" strcpy $_DESC_SecShortcuts "Choose the shortcuts to be created." ; Desktop Section strcpy $_SecDesktop "Desktop" strcpy $_DESC_SecDesktop "Create a shortcut on the Desktop." strcpy $_SET_SecDesktop "Shortcut created on the Desktop" ; StartMenu Section strcpy $_SecStartMenu "Start Menu" strcpy $_DESC_SecStartMenu "Create a folder with shortcuts in the Start Menu." strcpy $_SET_SecStartMenu "Shortcuts created in the Start Menu" ; QuickLaunch Section strcpy $_SecQuickLaunch "Quick Launch Toolbar" strcpy $_DESC_SecQuickLaunch "Create a shortcut in the Quick Launch Toolbar." strcpy $_SET_SecQuickLaunch "Shortcut created in the Quick Launch Toolbar" ; Loader Section strcpy $_SecLoader "Autostart ${PRODUCT_NAME} Loader" strcpy $_DESC_SecLoader "Create a shortcut to ${PRODUCT_NAME} Loader in the Autostart Menu. Uncheck to remove the shortcut." strcpy $_SET_SecLoader "${PRODUCT_NAME} Loader added to the Autostart Menu" ; Warning boxes strcpy $_NotDetected "No ${PRODUCT_NAME} installation detected in" strcpy $_MUI_ABORTWARNING_TEXT "Are you sure you want to quit the ${PRODUCT_NAME} ${PRODUCT_VERSION} Setup Assistant?" FunctionEnd ; ---------------------------------------------------------------------- ; Section descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} $_DESC_SecMain !insertmacro MUI_DESCRIPTION_TEXT ${SecDefWindowsBrowser} $_DESC_SecDefWindowsBrowser !insertmacro MUI_DESCRIPTION_TEXT ${SecAssoc} $_DESC_SecAssoc !insertmacro MUI_DESCRIPTION_TEXT ${SecAssocProto} $_DESC_SecAssocProto !insertmacro MUI_DESCRIPTION_TEXT ${SecHttp} $_DESC_SecHttp !insertmacro MUI_DESCRIPTION_TEXT ${SecHttps} $_DESC_SecHttps !insertmacro MUI_DESCRIPTION_TEXT ${SecAssocExt} $_DESC_SecAssocExt !insertmacro MUI_DESCRIPTION_TEXT ${SecHtm} $_DESC_SecHtm !insertmacro MUI_DESCRIPTION_TEXT ${SecHtml} $_DESC_SecHtml !insertmacro MUI_DESCRIPTION_TEXT ${SecShtml} $_DESC_SecShtml !insertmacro MUI_DESCRIPTION_TEXT ${SecXht} $_DESC_SecXht !insertmacro MUI_DESCRIPTION_TEXT ${SecXhtml} $_DESC_SecXhtml !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $_DESC_SecShortcuts !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $_DESC_SecDesktop !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $_DESC_SecStartMenu !insertmacro MUI_DESCRIPTION_TEXT ${SecQuickLaunch} $_DESC_SecQuickLaunch !insertmacro MUI_DESCRIPTION_TEXT ${SecLoader} $_DESC_SecLoader !insertmacro MUI_FUNCTION_DESCRIPTION_END