Archive: How to create custom order of startmenu items?


How to create custom order of startmenu items?
I've tried with advices listed here but with no success. I'm using Vista and my startmenu items are automatically sorted in alphabetical order.

How can i disable that in my installation script so that by default that directory ($SMPROGRAMS\Company) isn't sorted alphabetically after the installation...


I've used this code:

; create top most item
CreateShortCut "${startmenu}\FinishInstallation.lnk" "$INSTDIR\FinishInstallation.exe"
nsisStartMenu::RegenerateFolder "${startmenu_plugin}"
Pop $0

; create next
CreateShortCut "${startmenu}\Documentation.lnk "$INSTDIR\${helpfile}"
nsisStartMenu::RegenerateFolder "${startmenu_plugin}"
Pop $0

and so on...

where startmenu_plugin is startmenu without $SMPROGRAMS\ prefix.
But it dosesn't work because after the installation items are sorted alphabetically.

Thanks in advance


The start menu order is a user setting and any plugin that tries to change the order is a bit of a hack. You should just accept their order since you are not even supposed to have any control over it


Under Vista and Seven, by default, the start menu is always sorted, so you can't change the order.

Hidden under "Taskbar properties" => "Start menu properties", you can find an option "Sort 'All programs' alphabetically" which, once unchecked, restore the Windows XP behaviour where you can change the order of start menu items.

However, I think my nsisStartMenu plugin doesn't work correctly in this scenario (it just does nothing).
I've tried to fix that with no success.. Anyway, I think less than 1% of users have changed that option to have a customized start menu rather than a sorted one.