可以更改应用程序文件的图标吗?

Possible to change the application file's icon?

我正在使用 Inno Setup 创建一个 Windows 软件安装程序,并希望为分发的 exe 文件(位于 C > Program Files > MyProgram 中)使用自定义图标。

到目前为止,我已经能够让自定义图标为桌面快捷方式工作(某种程度上),方法是使用以下代码,放置在 [Icon] 部分...

Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico";  Tasks: desktopicon

当我说它 "sort of" 有效时...它确实自定义了桌面快捷方式的图标,但与原始图标的质量相比,图标的质量看起来很糟糕。

但更大的问题是...我完全不知道如何为实际应用程序 (exe) 文件或开始菜单快捷方式自定义图标。

我原以为以下行可以解决应用程序文件的问题...

Name: "{pf}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico";

而且我还假设以下代码可以解决开始菜单图标的问题...

Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\TheIcon.ico";

但是没有骰子。它只是使用默认图标。

谁能告诉我哪里做错了?我会 post 整个脚本,但似乎 Stack Overflow 代码编辑器不喜欢多行上的一堆大括号(如果有人知道解决方法,我会很乐意 post 整个脚本)。

仅供参考...对于这个特定项目,在通过 Inno Setup 运行 之前更改 exe 图标似乎不是一个选项(我尝试通过 Resource Hacker 更改它,虽然它成功地改变了 exe 的图标,它在这个过程中破坏了文件,甚至没有 运行 :(

如果无法使用 Inno Setup 自定义应用程序文件的图标,我还有其他选择吗?

如您所知,应用程序图标内置于 .exe 文件中。 Inno Setup 无法修改 .exe 文件。并且没有其他方法可以通过外部图标覆盖应用程序图标。

在构建安装程序之前,您必须自己编辑 .exe 文件。

我个人使用 Resource Hacker 并且没有遇到任何问题。

确保您正在修改的应用程序的许可证允许此类自定义。


Windows开始菜单中的图标确实是使用IconFilename设置的。我也没有问题。

问题可能是 Windows 缓存了“开始”菜单图标。因此,如果您之前在“开始”菜单中有该条目,有时使用新图标重新安装应用程序不会使 Windows 重置缓存。它一直显示旧图标。尝试卸载,重启,再安装。