使用保存在註冊表中的資料夾屬性產生的資料夾圖示在哪裡?

使用保存在註冊表中的資料夾屬性產生的資料夾圖示在哪裡?

右鍵單擊資料夾並選擇屬性。選擇“自訂”選項卡。在底部選擇“更改圖示”等

效果非常好。我的問題是:這些資訊保存在註冊表中的什麼位置?

答案1

有關特殊物件圖示的資訊(例如回收站或者我的電腦) 和類的物件(例如文件類型)儲存在註冊表中。有關圖示的信息個別物體通常與物件一起儲存。特別是,當您透過「屬性」視窗的「自訂」標籤將自訂圖示指派給資料夾時,該圖示將儲存在DESKTOP.INI該資料夾中的檔案中。它有H隱藏和S系統屬性已設置,因此除非您去尋找它,否則您不會看到它。具體來說,Windows 會寫出這樣的行:

[.ShellClassInfo]
IconResource=C:\Windows\system32\SHELL32.dll,60

DESKTOP.INI文件中。

答案2

尋找系統圖標

這些圖示不會儲存在註冊表中,它們通常會打包到 .dll 檔案中。請注意,.exe、.ocx、.icl、.ico 也是有效的圖示檔案。最重要的兩份文件是:

C:\Windows\system32\imageres.dll
C:\Windows\system32\shell32.dll

還有更多的系統圖示隱藏在:

C:\Windows\system32\compstui.dll
C:\Windows\system32\DDORes.dll
C:\Windows\system32\ieframe.dll
C:\Windows\system32\mmcndmgr.dll
C:\Windows\system32\moricons.dll
C:\Windows\system32\netshell.dll
C:\Windows\system32\pnidui.dll
C:\Windows\system32\wmploc.dll

並非所有這些都在 Windows XP 下可用,僅在 Windows 7 及更高版本中可用。

您可以使用 Nirsoft 等工具將它們提取到普通的 .ico 文件資源摘錄


分配系統圖標

一個 .dll 可以包含多個圖標,每個圖標在 dll 中都有其唯一的索引。應使用哪個 .dll 和哪個索引的資訊因資料夾類型而異

  1. 特殊文件夾如回收站或者我的電腦保存在註冊表下

    HKEY_CLASSES_ROOT\CLSID\{xxxx}\DefaultIcon
    (Default)
    %SystemRoot%\System32\imageres.dll,3
    

    {xxxx}必須替換為正確的 Windows 類別標識符。(點擊查看完整名單)

    ,3意味著相關資料夾應顯示第三個圖標圖像資源庫

  2. 普通資料夾可自訂透過創建一個桌面.ini該資料夾中的檔案。典型的文件如下所示:

    [.ShellClassInfo] 
    IconFile=%SystemRoot%\system32\imageres.dll
    IconIndex=3
    

相關內容