2014-01-08 81 views
2

我在Delphi中創建了VCL應用程序,並使用Project/Options對話框設置了應用程序圖標。我還通過向項目添加RC文件,將附加圖標添加到應用程序中。這些文件中沒有一個在RC文件中被命名爲「MAINICON」,以避免與應用程序圖標資源發生衝突。帶有多個嵌入圖標的EXE

EXE包含所有圖標:應用程序圖標和RC文件中列出的其他圖標。當我啓動EXE時,主窗體和任務欄按鈕都會按預期顯示應用程序圖標。

問題是文件管理器(資源管理器,Total Commander等)顯示exe的附加圖標之一。爲什麼?是否可以使應用程序圖標顯示在文件管理器中?

謝謝!

+0

您是否有可能遇到Windows緩存圖標?你有沒有在過去的任何時間使用過這個圖標? –

+0

http://stackoverflow.com/questions/19848585/some-xe2-programs-dont-show-new-executable-icons-in-windows-explorer/19849327#19849327 –

+0

作爲一個測試,將EXE移動到一個文件夾它是從來沒有去過,運行它,看看你是否仍然有錯誤的圖標。 –

回答

8

AFAIK Windows按字母順序選擇第一個圖標資源。因此,請將您的addidional圖標資源重命名爲MAINICON,並按字母順序排列。重建並清除圖標cashe看看它是否修復它。

+0

這有助於:)爲了確保「MAINICON」首先出現,我用「MAINICON_」開始了其他圖標資源的名稱。實際上它們是具有不同背景顏色的主圖標的副本,所以這甚至不會使命名不合邏輯。非常感謝您的幫助! – kol

+2

你確定這是真的嗎?我認爲shell使用它找到的第一個圖標。只是在創建res文件時,Delphi按名稱對圖標進行排序。還是我記得錯了?你有沒有找到任何文件?它有點糟糕,Delphi硬代碼MAINICON,意味着你不能給出比MAINICON更少的圖標名稱。 –

+0

我和大衛在這裏。但容易檢查:使用CFF Explorer或Re stacker或任何打開EXE並重命名圖標而不重新排序它們並檢查結果。 –