【问题标题】:Inno Setup - How to change the icon of the shortcut of uninstaller without separate icon file?Inno Setup - 如何在没有单独图标文件的情况下更改卸载程序快捷方式的图标?
【发布时间】:2017-11-15 06:16:53
【问题描述】:

是否可以在开始菜单中更改卸载程序快捷方式的图标而不存储单独的图标文件(到应用文件夹)?

我看到了这个:Using Resource Hacker for changing the icon after the build,但我无法实现它。

我的代码:

[Icons]
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}

【问题讨论】:

  • 您可以使用IconFilename: "{app}\icon.ico"; 设置图标,对于程序和应用程序,您可以使用UninstallDisplayIcon={app}\icon.ico 在[设置] 部分设置图标
  • @MartinPrikryl 我不想将图标文件添加到应用程序文件夹中,我完全理解。

标签: inno-setup desktop-shortcut startmenu windows-shortcut


【解决方案1】:

Windows shell 快捷方式的图标可以由外部图标文件(您不想要的)或快捷方式指向的文件设置。所以你必须修改卸载程序的图标。


您必须在编译时修改卸载程序图标。

您不能在安装时执行此操作,因为卸载程序包含自己的校验和。如果您修改卸载程序,它会拒绝启动,声称它已损坏。除非您知道如何修复存储在卸载程序中的校验和。


但 Inno Setup 确实不允许在编译时修改卸载程序图标。

你能做的,就是滥用SignTool“回调”。设置为SignTool 的命令甚至可以处理卸载程序。它实际上可以用卸载程序做任何事情,而不仅仅是“签名”它。但无论如何它都必须“签名”它(Inno Setup 明确检查可执行文件是否在“工具”完成后签名)。

您可以通过将SignTool 设置为最终运行实际signtool.exe 的批处理文件(或其他脚本)来实现,但在此之前,它将修改图标(例如使用Resource Hacker 命令-行)。

有关修改卸载程序并对其进行签名的此类批处理文件的示例,请参阅Microsoft SmartScreen - suspended using Inno Setup installer?

所以这是可行的,只有当你进行代码签名(无论如何你应该这样做)。你需要一个代码签名证书。


免责声明:将卸载程序的快捷方式添加到“开始”菜单违反了 Windows 准则(并且创建“开始”菜单组至少违反了 Windows 8 及更高版本的 Windows 准则)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2011-07-07
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2016-11-26
    • 2021-07-19
    相关资源
    最近更新 更多