2013-02-20 40 views
2

我有一个带有16x16图标的Delphi 6应用程序。最近我做了它的64x64版本并重新编译应用程序。高分辨率exe图标导致Windows桌面快捷方式上的低分辨率图标

当我运行该应用程序时,此高分辨率图标显示在Windows 7 Superbar和任务管理器中。它显示在.exe文件属性中。

但是,当我在桌面上创建一个快捷方式时,它会显示一个拉伸的低分辨率图标(16x16)。当我去这个快捷方式的属性 - 它显示我的64x64版本。要在快捷方式上显示高分辨率图标,我必须转到快捷方式图标的属性,单击唯一可用的高分辨率图标,单击“确定”和“应用”,然后执行此序列两次。

如果我删除快捷方式并尝试再次创建它,它会再次显示16x16图标,直到我将该图标分配两次。

我专门研究了.res文件 - 只有一个图标。

我清除了图标缓存,注销并登录。仍然没有任何行为改变。 这种行为可以在Windows 7的其他计算机上重现。

我不知道发生了什么事。它是从高分辨率制作低分辨率版本,还是在某个地方缓存了以前的版本?

+0

这是一个缓存问题。您需要找到一种方法来清除具有旧引用的缓存。你需要超过64像素的图标。您至少需要16,32,48和256个 – 2013-02-21 20:58:52

+0

您需要在同一图标文件中有多个尺寸和颜色深度图标,因此Windows有适当的选择供您选择;否则,它会将默认图标缩放到所需的分辨率。也许[这里的答案](http://stackoverflow.com/a/11874979/62576)可以帮助。 – 2013-02-21 23:23:38

+0

@Ken White:我会尝试多个图标。你说:“否则,它会缩放默认图标到它需要的分辨率”。诀窍是它需要一个绝对大于16x16的图标,但将其缩小到16x16,然后延伸到必要的大小。多么愚蠢! – Paul 2013-02-22 18:41:35

回答

1

打开命令提示符窗口,然后输入:

taskkill /IM explorer.exe /F 
DEL "%localappdata%\IconCache.db" /A 
shutdown /r /f /t 00 

这将重建图标缓存,这很可能是你的问题的根源。请注意,最后一条命令将关闭并重新启动计算机,因此请务必在执行命令之前保存所有数据。

+0

我做了这个多次。它没有帮助。 – Paul 2013-02-22 18:37:17

相关问题