Inno Setup - 如何在没有单独的图标文件的情况下更改卸载程序快捷方式的图标?

时间:2017-06-13 12:47:15

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

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

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

我的代码:

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

1 个答案:

答案 0 :(得分:0)

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

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

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

但是Inno Setup并不真正允许在编译时修改卸载程序图标。

您可以做的是滥用SignTool"回调"。设置为SignTool的命令甚至可以处理卸载程序。它实际上可以对卸载程序执行任何操作,而不仅仅是" sign"它。但它必须"签署"无论如何(Inno Setup明确检查可执行文件是在#34;工具"完成后签名)。

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

有关修改卸载程序并对其进行签名的此类批处理文件的示例,请参阅Resource Hacker

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

Microsoft SmartScreen - suspended using InnoSetup installer?

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