2013-02-21 27 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中的「開始」菜單並不合理,因此無論如何都不會看到任何嵌套。