2013-02-21 46 views
3

我想一个快捷方式在开始菜单添加到我的程序如下:开始作为一个子目录菜单文件夹 - Inno Setup的

MyAppPublisher\MyAppName\MyAppName 

我有这个在我的脚本:

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

但开始菜单文件夹始终是:

MyAppName\MyAppName 

任何想法?

+1

你描述的行为很奇怪。您当前的脚本必须创建了“MyAppPublisher \ MyAppName”,而不是“MyAppName \ MyAppName”快捷方式。确保您正在运行正确的设置(如果您有多个InnoSetup IDE打开,例如),并且您已经在运行设置之前正确地重新编译脚本。 – TLama 2013-02-21 13:54:57

回答

4

就像在[Icons]部分条目的参数Name中指定此路径一样简单。您当前的脚本创建像MyAppPublisher\MyAppName一个快捷方式,这个人会做你的需要:

#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}" 
+0

请注意,最佳做法是在默认情况下指定“完整”路径,并正常使用“{group}”。这将允许用户将他们放入他们想要的任何组。 – Deanna 2013-02-21 15:20:30

+0

这取决于OP实际想让用户选择的内容。如果只是开始菜单文件夹(其余部分保持不变为'{#MyAppName}'),那么这是正确的方法。 [替代您的+1] – TLama 2013-02-21 15:26:31

+0

请注意,强制执行这样的子文件夹结构会让一些用户恼火。正如Deanna所说,最好的做法是允许用户更改所有路径,并且只安装简单的图标而不是子文件夹。 – Miral 2013-02-22 18:46:44

0

发现了它,我的脚本中的问题建议是正确的,由于某种原因,我需要生成一个新的GUID的脚本使更改生效

+0

不,这是不正确的。你已经问过如何在'MyAppPublisher \ MyAppName \ MyAppName'中创建一个快捷方式,并且这不能简单地发生在你的问题的脚本中。你错过了最后一个'\ MyAppName'。 – TLama 2013-02-21 14:39:27

+0

对不起,你是正确的。虽然我仍然需要更改我的GUID以使其发生某种原因。奇怪的。 – oggmonster 2013-02-21 14:46:27

+2

我想说,它应该足以卸载在测试过程中安装的最新版本。 – TLama 2013-02-21 14:51:51

2

如果您希望该组位于子文件夹中,则需要指定该子文件夹。

要做到这一点,最好的方法是将其追加到DefaultGroupName指令的末尾,该指令将在设置向导中显示正确的信息,并允许用户完全根据需要将其更改为单个文件夹或其他位置。

DefaultGroupName={#MyAppPublisher}\{#MyAppName} 

请注意,Windows 8中的“开始”菜单并不合理,因此无论如何都不会看到任何嵌套。