2009-09-06 307 views
19

如何通過Innosetup刪除桌面快捷方式?它由以前的版本創建,不再需要。我試着在[InstallDelete]如何通過Innosetup刪除桌面快捷方式

[InstallDelete] 
Type: files; Name: {userdesktop}\Shortcut Name 

刪除,並在CurStepChanged事件處理

DeleteFile(ExpandConstant('{userdesktop}\Shortcut Name')); 

的 「ssInstall」 刪除文件,但他們沒有工作。任何建議表示讚賞!

+0

您可以刪除*從以前版本的所有*舊圖標安全地使用這種方法:http://stackoverflow.com/a/ 22568945/32453 – rogerdpack 2014-05-05 23:29:07

回答

26

任一選項都可以使用,但有幾點需要考慮。

1)根據是否爲特定用戶或所有用戶安裝了快捷方式,您需要使用{userdesktop}或{commondesktop}。

2)您需要確保將.lnk擴展名添加到快捷方式名稱。

所以這可能會工作:

DeleteFile(ExpandConstant('{userdesktop}\Shortcut Name.lnk')); 
DeleteFile(ExpandConstant('{commondesktop}\Shortcut Name.lnk')); 

[InstallDelete] 
Type: files; Name: "{userdesktop}\Shortcut Name.lnk" 
Type: files; Name: "{commondesktop}\Shortcut Name.lnk" 
+0

啊,這很奏效,非常感謝! – trudger 2009-09-06 14:33:33

+0

Altought我安裝了名稱爲「{commondesktop} \ ...」的鏈接,上面的解決方案並不適用於我,我不得不退回到類型:文件;名稱:「C:\ Users \ Public \桌面\我的App.lnk「作爲解決方法。 – transistor 2017-04-07 08:49:02