我正在探索(.Res)资源文件,在delphi.about.com网站上发现了一个有用的教程。
教程链接。http:/delphi.about.comodobjectpascalidelaa113099a.htm。
下载测试项目。http:/delphi.about.comlibraryaboutres.zip。
我发现Windows资源管理器中的应用程序图标不一样。申请表上的图标正确显示(参考图片2)。在Windows任务栏上的图标正确显示(参考图片3)。
但在Windows资源管理器中,当我浏览它时,图标是错误的(参考图片1)。这不是Res文件中的MAINICON。
我需要怎么配置才能得到正确的应用程序图标与.EXE文件?
图片编号(1)
图片编号(2)
图片编号(3)
先谢谢你
由于没有提示要显示哪个图标,shell选择了ID最小的图标,或者按字母顺序排列的第一个图标。你的可执行文件中有三个图标。ICOFOLD, ICOOK和MAINICON. ICOFOLD是要显示在shell文件夹中的。
任务栏或表单图标的设置是通过发送 WM_SETICON
消息,一旦你的程序运行。因此,那里没有任何猜测。
任务栏和窗体窗口中的图标是准确的,因为它们直接来自于运行进程的资源。
另一方面,Windows资源管理器。缓存图标 而有时该缓存会被破坏或不同步。 这是Windows资源管理器的一个众所周知的问题。 它与你的应用程序无关。 有很多第三方工具可以修复图标缓存。
你可以只运行以下命令来清除图标缓存。
ie4uinit.exe -ClearIconCache
对于Windows 10来说,使用:
ie4uinit.exe -show