inno-setup

Start menu folder as a subdirectory


I want to add a shortcut to my program in the start menu as follows:

MyAppPublisher\MyAppName\MyAppName

I have this in my script:

DefaultGroupName={#MyAppPublisher}
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

But the start menu folder is always:

MyAppName\MyAppName

Any ideas?


Solution

  • It's as easy as specifying this path in the Name parameter of the entry in the [Icons] section. Your current script creates a shortcut like MyAppPublisher\MyAppName, this one will do what you need:

    #define MyAppName "MyAppName"
    #define MyAppExeName "MyProg.exe"
    #define MyAppPublisher "MyAppPublisher"
    
    [Setup]
    AppName={#MyAppName}
    AppVersion=1.5
    DefaultDirName={pf}\My Program
    DefaultGroupName={#MyAppPublisher}
    OutputDir=userdocs:Inno Setup Examples Output
    
    [Files]
    Source: "{#MyAppExeName}"; DestDir: "{app}"
    
    [Icons]
    ; notice the full path to the created shortcut, {group} is taken from the Select
    ; Start Menu Folder page edit box (if shown), which is by default taken from the
    ; DefaultGroupName directive value; this start menu folder path is then followed
    ; by the tail of the shortcut path
    Name: "{group}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"