我有一个带有16x16图标的Delphi 6应用程序。最近我做了它的64x64版本并重新编译应用程序。高分辨率exe图标导致Windows桌面快捷方式上的低分辨率图标
当我运行该应用程序时,此高分辨率图标显示在Windows 7 Superbar和任务管理器中。它显示在.exe文件属性中。
但是,当我在桌面上创建一个快捷方式时,它会显示一个拉伸的低分辨率图标(16x16)。当我去这个快捷方式的属性 - 它显示我的64x64版本。要在快捷方式上显示高分辨率图标,我必须转到快捷方式图标的属性,单击唯一可用的高分辨率图标,单击“确定”和“应用”,然后执行此序列两次。
如果我删除快捷方式并尝试再次创建它,它会再次显示16x16图标,直到我将该图标分配两次。
我专门研究了.res文件 - 只有一个图标。
我清除了图标缓存,注销并登录。仍然没有任何行为改变。 这种行为可以在Windows 7的其他计算机上重现。
我不知道发生了什么事。它是从高分辨率制作低分辨率版本,还是在某个地方缓存了以前的版本?
这是一个缓存问题。您需要找到一种方法来清除具有旧引用的缓存。你需要超过64像素的图标。您至少需要16,32,48和256个 – 2013-02-21 20:58:52
您需要在同一图标文件中有多个尺寸和颜色深度图标,因此Windows有适当的选择供您选择;否则,它会将默认图标缩放到所需的分辨率。也许[这里的答案](http://stackoverflow.com/a/11874979/62576)可以帮助。 – 2013-02-21 23:23:38
@Ken White:我会尝试多个图标。你说:“否则,它会缩放默认图标到它需要的分辨率”。诀窍是它需要一个绝对大于16x16的图标,但将其缩小到16x16,然后延伸到必要的大小。多么愚蠢! – Paul 2013-02-22 18:41:35