错误的EXE应用程序图标与资源文件

时间:2014-05-13 00:50:07

标签: delphi resources icons

我正在使用(.Res)资源文件进行探索,并在delphi.about.com网站上找到了一个有用的教程。

教程链接: http://delphi.about.com/od/objectpascalide/l/aa113099a.htm

下载测试项目: http://delphi.about.com/library/aboutres.zip

我发现Windows资源管理器中的应用程序图标不同。 “申请表”上的图标正确显示(参见图2)。 Windows任务栏上的图标正确显示(请参阅图3)。

但是当我浏览它时,Windows资源管理器中的图标是错误的(参见图1)。它不是Res文件中的MAINICON。

知道它有什么问题吗? 我需要配置什么才能使用.EXE文件获取正确的应用程序图标?

  • Delphi XE3环境
  • Windows 7环境
  • 您可以从上面的链接下载示例项目

图片编号(1)

EXE Application icon is wrong in Windows Explorer

图片编号(2)

Application icon appears correctly on the task bar

图片编号(3)

Application icon appears correctly on the form

提前致谢

3 个答案:

答案 0 :(得分:4)

没有提示显示哪个图标,shell会选择ID最低的图标,或者按字母顺序排列的第一个图标。您的可执行文件中有三个图标:ICOFOLD,ICOOK和MAINICON。 ICOFOLD是要在shell文件夹中显示的那个。

程序运行后,通过发送WM_SETICON消息来设置任务栏或表单图标。因此,那里没有猜测。

答案 1 :(得分:1)

“任务栏和表单”窗口中的图标是准确的,因为它们直接来自正在运行的进程的资源。

另一方面,

Windows资源管理器caches icons,有时该缓存会损坏或不同步。这是Windows资源管理器的一个众所周知的问题。它与您的应用程序无关。有很多第三方工具可用于修复图标缓存。

答案 2 :(得分:0)

您只需运行以下命令即可清除图标缓存:

ie4uinit.exe -ClearIconCache

对于Windows 10,使用:

ie4uinit.exe -show