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

问题描述 投票:5回答:3

我正在探索(.Res)资源文件,在delphi.about.com网站上发现了一个有用的教程。

教程链接。http:/delphi.about.comodobjectpascalidelaa113099a.htm。

下载测试项目。http:/delphi.about.comlibraryaboutres.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

先谢谢你

delphi resources icons
3个回答
4
投票

由于没有提示要显示哪个图标,shell选择了ID最小的图标,或者按字母顺序排列的第一个图标。你的可执行文件中有三个图标。ICOFOLD, ICOOK和MAINICON. ICOFOLD是要显示在shell文件夹中的。

任务栏或表单图标的设置是通过发送 WM_SETICON 消息,一旦你的程序运行。因此,那里没有任何猜测。


1
投票

任务栏和窗体窗口中的图标是准确的,因为它们直接来自于运行进程的资源。

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


0
投票

你可以只运行以下命令来清除图标缓存。

ie4uinit.exe -ClearIconCache

对于Windows 10来说,使用:

ie4uinit.exe -show

© www.soinside.com 2019 - 2024. All rights reserved.