2

Щелкните правой кнопкой мыши папку и выберите свойства. Выберите вкладку "Настройка". Внизу выберите "Изменить значок" и т.д.

Работает очень красиво. Мой вопрос: где эта информация хранится в реестре?

2 ответа2

1

Чтобы найти системные значки

Эти значки не хранятся в реестре, они обычно упакованы в 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 и выше.

Вы можете извлечь их в обычные файлы .ico с помощью таких инструментов, как Nirsoft's ResourcesExtract.


Чтобы назначить системные значки

Один .dll может содержать несколько значков, и каждый значок имеет свой уникальный индекс в DLL. Информация о том, какой .dll и какой индекс следует использовать, зависит от типа папки.

  1. Специальные папки, такие как Корзина или Мой компьютер , сохраняются в реестре в

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

    {xxxx} должен быть заменен на правильный идентификатор класса Windows. (нажмите для полного списка)

    ,3 означает, что в рассматриваемой папке должен отображаться 3-й значок из imageres.dll

  2. Обычные папки можно настроить , создав файл desktop.ini внутри этой папки. Типичный файл будет выглядеть так:

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

Информация о значках для специальных объектов (таких как « Корзина» или « Мой компьютер») и классах объектов (например, типы файлов) хранится в реестре.  Информация о значках для отдельных объектов обычно хранится вместе с объектом.  В частности, когда вы назначаете пользовательский значок папке через вкладку «Настройка» окна «Свойства», он сохраняется в файле DESKTOP.INI в папке.  Он имеет H idden и S ystem атрибуты набора, так что вы не будете видеть его , если вы идете на охоту за ним.  В частности, Windows напишет такие строки:

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

в файл DESKTOP.INI .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .