我使用Inno Setup创建Windows软件安装程序,并希望为分布式exe文件使用自定义图标(它将位于C> Program Files> MyProgram中)。
到目前为止,通过使用以下代码,我已经能够通过[Icon]
部分...
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico"; Tasks: desktopicon
当我说它"有点"工作......它确实自定义了桌面快捷方式的图标,但与原始图标的质量相比,图标的质量看起来很糟糕。
但更大的问题是......我无法弄清楚如何自定义实际应用程序(exe)文件的图标,或者开始菜单快捷方式。
我会假设以下行可以解决应用程序文件......
Name: "{pf}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico";
我还假设以下代码可以解决开始菜单图标...
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico";
但没有骰子。它只使用默认图标。
谁能说出我做错了什么?我会在这里发布整个脚本,但似乎Stack Overflow代码编辑器不喜欢多行上的一堆花括号(如果有人知道方式我会很乐意发布整个脚本)。
和FYI ......对于这个特殊的项目,在通过Inno Setup运行它之前更改exe图标似乎不是一个选项(我尝试通过Resource Hacker更改它,虽然它成功地改变了它exe的图标,它在整个过程中损坏了文件,甚至无法运行:(
如果无法使用Inno Setup自定义应用程序文件的图标,那么我还有其他选择吗?
答案 0 :(得分:2)
如您所知,应用程序图标内置于.exe文件中。 Inno安装程序无法修改.exe文件。并且没有其他方法可以通过外部方式覆盖应用程序图标。
在构建安装程序之前,您必须自己编辑.exe文件。
我个人使用Resource Hacker并且没有任何问题。
确保您正在修改的应用程序的许可证允许进行此类自定义。
Windows“开始”菜单中的图标确实是使用IconFilename
设置的。我也没有问题。
问题可能是Windows缓存了“开始”菜单图标。因此,如果您之前在“开始”菜单中有该条目,则使用新图标重新安装应用程序有时会使Windows重置缓存。它一直显示旧图标。尝试卸载,重新启动并重新安装。