+
+
+
+ Start Menu Page
+
+
+
+
+
+ The Start Menu page was redesigned in ExperienceUI 1.1 to work like the Modern UI system. The new Start Menu page was largely
+ based on the Modern UI, so it works the same way.
+
+
+
+
+
+
+
+
+
+
+
+ Get the return
+
+
+
+
+
+ Of course, you need to have a way to read which folder the user selected, or if the user decided not to create shortcuts. Reading the
+ return from the Start Menu page is now automated.
+
+
+
+
+
+ Macros
+
+
+
+
+
+
+
+ Component Manager Compatibility
+
+
+
+ If you use Component Manager in your installer, and you use the Start Menu shortcut feature, the Start Menu page can be a little tricky.
+ For Component Manager versions 0.2 and earlier, this is rather complex. CM versions 0.3 and later are more automated.
+
+
+
+ Versions 0.3 and later
+
+ - Include the ExperienceUI and Component Manager.
+
+ This one should be pretty self-explanatory. Include XPUI.nsh and CM.nsh. See the appropriate documentation for more
+ information on including the header files.
+ - Component Manager Languages
+
+ Insert Component Manager language files now.
+
+
+!insertmacro CM_LANGUAGE "English"
+
+ - Maintenance Pages
+
+ Now, add in Component Manager's page suite.
+
+
+!insertmacro CM_PAGES
+
+ - ExperienceUI Pages
+
+ Here you should insert any other pages, including the Start Menu page, as normal.
+
+
+${Page} Welcome
+${LicensePage} "License_pro.rtf"
+${Page} Components
+${Page} Directory
+${StartMenuPage} App $R9
+${Page} InstConfirm
+${Page} InstFiles
+${Page} Finish
+${Page} Abort
+
+ - Sections
+
+ Insert Component Manager-enhanced sections into the script.
+
+
+${Section} "My Program" SecProgram "Description"
+ ${SetOutPath} $INSTDIR
+ ${File} reg.dat "regversion\reg.dat"
+ ${Directory} `$%PROGRAMFILES%\My Program`
+${Section}
+
+ - CM File Functions
+
+ Finally, insert Component Manager's CM_FILES macro. This defines all the functions used in CM_PAGES.
+
+
+!insertmacro CM_FILES
+
+ - ExperienceUI Language Files
+
+ Last, list all the languages you want your installer to support here. Note that both the ExperienceUI and Component
+ Manager must support the languages you are using.
+
+
+!insertmacro XPUI_LANGUAGE "English"
+!insertmacro XPUI_LANGUAGE "Spanish"
+!insertmacro XPUI_LANGUAGE "German"
+!insertmacro XPUI_LANGUAGE "French"
+!insertmacro XPUI_LANGUAGE "PortugueseBR"
+
+
+
+
+ Versions 0.2 and earlier
+
+ Note: these directions are based on an old version of Component Manager. They have not
+ been tested, but they should still work.
+
+ In a related note, Component Manager 0.3 has not been tested with ExperienceUI 1.1.051202 (the final version of the ExperienceUI SDK version 1.1).
+
+ With Component Manager 0.2, the Start Menu shortcut
+ feature needs to know the appropriate page ID and variable, and it needs to call the ExperienceUI start menu creation macro.
+ The problem is, the Start Menu page has to be inserted before Component Manager calls XPUI_STARTMENU_WRITE_BEGIN.
+ Inserting XPUI_PAGE_STARTMENU and then CM_SYSTEM would work, but the Component Manager maintenance pages would be after the
+ Start Menu page. These macros allow you to define any necessary settings for the Start Menu page, but delay calling it
+ until where it would normally appear.
+
+
+
+
+
+
+Example:
+
+
+
+
+!include CM.nsh
+!include XPUI.nsh
+!insertmacro XPUI_PAGE_STARTMENU_INIT MyApp $R0
+
+ ${Section} "Start Menu Shortcuts" SecSM "Creates Start Menu Shortcuts"
+ ${StartMenu} MyApp $R0
+ ${CreateShortcut} "Start the Program" "$INSTDIR\MyApp.exe"
+ ${StartMenuEnd}
+${SectionEnd}
+
+ !insertmacro CM_PAGES
+ !insertmacro XPUI_PAGE_STARTMENU_SHOW MyApp
+!insertmacro XPUI_LANGUAGE "English"
+!insertmacro CM_FILES
+
+
+
+ |
+
+
+
+