diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html index 736b2471..aecfbf2d 100644 --- a/Contrib/Modern UI/Readme.html +++ b/Contrib/Modern UI/Readme.html @@ -160,6 +160,11 @@ follow these steps:

MUI_STARTMENU_DEFAULTFOLDER
The default Start Menu Folder. Use $(LANGSTRINGNAME) as value is you want to use a language string.

+

MUI_STARTMENU_REGISTRY_ROOT, MUI_STARTMENU_REGISTRY_KEY, + MUI_STARTMENU_REGISTRY_VALUENAME
+ If your installer saves the Start Menu folder of a previous installation + in a registry, define these values and the Modern UI will use the saved + value as default folder.

MUI_FINISHPAGE
Show the Finish page.

diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh index 284c82c6..d6713146 100644 --- a/Contrib/Modern UI/System.nsh +++ b/Contrib/Modern UI/System.nsh @@ -1066,11 +1066,27 @@ !ifndef MUI_STARTMENU_DEFAULTFOLDER !define MUI_STARTMENU_DEFAULTFOLDER "${MUI_PRODUCT}" !endif - + Function "${SETSTARTMENU}" !insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE) + !ifdef MUI_STARTMENU_REGISTRY_ROOT + !ifdef MUI_STARTMENU_REGISTRY_KEY + !ifdef MUI_STARTMENU_REGISTRY_VALUENAME + + StrCmp "${MUI_STARTMENU_VARIABLE}" "" "" +6 + + Push ${MUI_TEMP1} + ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENU_REGISTRY_ROOT}" "${MUI_STARTMENU_REGISTRY_KEY}" "${MUI_STARTMENU_REGISTRY_VALUENAME}" + StrCmp ${MUI_TEMP1} "" +2 + StrCpy "${MUI_STARTMENU_VARIABLE}" ${MUI_TEMP1} + Pop ${MUI_TEMP1} + + !endif + !endif + !endif + StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENU_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENU_DEFAULTFOLDER}" Pop "${MUI_STARTMENU_VARIABLE}" diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi index 27e99d53..faeaf0cf 100644 --- a/Examples/Modern UI/StartMenu.nsi +++ b/Examples/Modern UI/StartMenu.nsi @@ -10,10 +10,9 @@ ;$9 is being used to store the Start Menu Folder. ;Do not use this variable in your script (or Push/Pop it)! -;You can change this variable or the default Start Menu Folder by using -;these defines: -;!define MUI_STARTMENU_VARIABLE "$VAR" -;!define MUI_STARTMENU_DEFAULTFOLDER "Folder Name" +;To change this variable, use MUI_STARTMENU_VARIABLE. +;Have a look at the Readme for info about other options (default folder, +;registry). !define TEMP $R0