Inno Setup - 如何更改卸载程序快捷方式的图标而无需单独的图标文件?

问题描述:

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

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

我的代码:

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

您可以使用'IconFilename:{app} \ icon.ico“设置图标;'并且您可以使用'UninstallDisplayIcon = {app} \ icon.ico'在[设置]部分设置图标和程序和应用程序 – RobeN

+0

@MartinPrikryl我不想将图标文件添加到应用程序文件夹中,我完全理解。 –

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


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

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


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

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

可以实现通过设置SignTool到一个批处理文件(或其他脚本),将运行在所述端的实际signtool.exe,但在此之前,将修改的图标(例如,使用Resource Hacker命令行)。

对于这样的批处理文件的一个例子,这两个修改卸载和体征它,请参阅Microsoft SmartScreen - suspended using InnoSetup installer?

所以这是可行的,只要你做的代码签名(你应该这样)。你需要一个代码签名证书。

enter image description here


免责声明:添加一个快捷方式到一个卸载程序开始菜单是针对Windows的标准(和创建开始菜单组是针对Windows的标准的Windows 8及以上至少)。

+0

'unins000.exe'图标有变化吗? –

+0

对不起,我不明白,你的意思是*“不,它带着可执行文件的图标。”*。它是否有一个通用的“安装程序”图标(标准的Inno安装程序)?还是它有你自定义的图标,你已经插入到'setup.e32'? –

+0

对不起,我采用'Setup.e32'的解决方法。这是错误的想法。 –