使用资源编辑器在构建后更改图标

14

这个问题在几个地方都有提到(比如这里这里)。

在第二个问题中有一条评论建议使用

ResHacker.exe -addoverwrite "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0

我还尝试使用-modify而不是-addoverwrite

ResHacker.exe -modify "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0

但结果仍然相同。

图标已更改:如果我右键单击exe文件并检查属性,我会看到图标已更改,但在Windows Explorer中仍然看到旧图标。

如果我使用Resource Hacker打开它(因此不将其用作命令行工具,而是用作普通GUI工具),则在“打开文件”对话框中可以看到正确的图标。

有人能提供解决方案吗? 我正在尝试在Delphi后构建事件中使用它。


1
我怀疑你看到的是资源管理器缓存中的图标。如果你在后期构建事件中这样做,为什么不一开始就链接正确的图标呢? - David Heffernan
使用相同的dpr,我需要创建2个带有2个名称和2个图标的文件。(当然我可以用2个dpr来做到这一点,但这意味着要同时维护两个,而这将是完美的解决方案)。不管怎样,你是正确的,这只是浏览器缓存的问题。如果您发布答案,我会接受它。谢谢。 - UnDiUdin
2个回答

16

我猜测你看到的是资源管理器图标缓存中的图标。


1
考虑到原帖作者已经确认这是问题,所以负评似乎有点奇怪!! - David Heffernan
是的,应该是浏览器的图标缓存,另一个可能会与浏览器缓存混合。<g> - Sertac Akyuz
1
@Sertac explorer不是一个浏览器,你可能在想Internet Explorer!<g> - David Heffernan
当然,我是指“Windows资源管理器”。是的,那就是问题所在,现在我能够实现我的目标了。 - UnDiUdin

12

大卫是正确的,需要更新资源管理器的图标缓存。

在您的批处理文件中,在ResHacker命令之后添加以下命令:

ie4uinit.exe -ClearIconCache

ie4unit 是一个内置命令)

无需重新启动 explorer


1
我相信你想在Windows 10中使用ie4uinit -show,但在早期版本中需要使用ClearIconCache。你可以(可能?)安全地调用两者(取决于你的上下文环境)。 - BuvinJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接