2013-02-20 42 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

相關問題