如何通过Innosetup删除桌面快捷方式

23

我该如何在Innosetup中删除桌面快捷方式?它是由先前的版本创建的,现在不再需要。我尝试在 [InstallDelete] 中删除它。

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

并在“CurStepChanged”事件处理程序的“ssInstall”中删除文件。

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

但它们不起作用。欢迎任何建议!


您可以使用此方法安全地删除以前版本的所有旧图标:https://dev59.com/1nI-5IYBdhLWcg3wI0t9#22568945 - rogerdpack
1个回答

34

任何一种选项都可以工作,但有几个需要考虑的问题。

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"

2
尽管我已经安装了名称为 "{commondesktop} ......" 的链接,但是上述删除它的解决方案对我无效,所以我不得不退而使用类型为 files; 名称为 "C:\Users\Public\Desktop\My App.lnk" 作为一种解决方法。 - transistor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接