Смена значка папки или ярлыка в Windows почти всегда упирается в один и тот же диалог «Сменить значок», который по умолчанию открывает библиотеку shell32.dll — именно в ней, а не в отдельных файлах .ico, система хранит большую часть своих иконок. Если вы ищете «dll со значками», то вам нужны библиотеки shell32.dll, imageres.dll и moricons.dll из папки C:\Windows\System32 — это три главных источника системных пиктограмм.
В этой статье разберём, какие DLL-файлы Windows содержат значки, чем они отличаются, как посмотреть их содержимое штатными средствами, как извлечь иконку в отдельный файл и почему менять сами библиотеки — плохая идея.
Что такое DLL со значками и зачем они нужны
DLL (Dynamic Link Library) — это динамически подключаемая библиотека, в которой программы хранят общие ресурсы: код, диалоги, строки и графику. Значки внутри DLL лежат в виде так называемых ресурсов иконок (icon resources) — каждая иконка имеет порядковый индекс, начиная с нуля.
Такой подход экономит место и упрощает обновление: вместо сотен отдельных файлов .ico система держит один компактный контейнер. Когда вы назначаете папке значок из shell32.dll, Windows записывает в ярлык или desktop.ini путь к библиотеке и номер иконки, например shell32.dll,3.
Практическая польза для пользователя проста: вы можете оформить папки, ярлыки и ярлычки панели задач системными иконками, ничего не скачивая из интернета и не рискуя подхватить вредоносный файл.
Основные системные DLL со значками
В Windows существует несколько библиотек-«хранилищ» иконок. Все они лежат в каталоге C:\Windows\System32 (на 64-битных системах часть дублей находится в C:\Windows\SysWOW64).
| Файл | Что содержит | Особенности |
|---|---|---|
shell32.dll | Базовые значки: папки, диски, корзина, настройки | Открывается по умолчанию в диалоге смены значка |
imageres.dll | Современные иконки интерфейса Windows | Основной набор в Windows 10 и 11 |
moricons.dll | Старые значки времён Windows 3.x/9x | Подходит для «ретро»-оформления |
ddores.dll | Иконки устройств: звук, мониторы, сеть | Крупные и детализированные пиктограммы |
pnidui.dll, netshell.dll | Сетевые значки | Статусы подключения, Wi-Fi, адаптеры |
Количество иконок в каждой библиотеке зависит от версии Windows: с обновлениями Microsoft добавляет новые ресурсы и иногда меняет их индексы. Поэтому значок «номер 41» в imageres.dll на разных сборках системы может выглядеть по-разному.
Как посмотреть значки в DLL штатными средствами
Самый простой способ увидеть содержимое библиотеки — воспользоваться встроенным диалогом смены значка. Он работает одинаково для ярлыков и папок.
- 📁 Кликните правой кнопкой по ярлыку или папке и выберите Свойства.
- 🖱️ Перейдите на вкладку Ярлык (для папки — Настройка) и нажмите Сменить значок.
- 🔍 В поле «Искать значки в следующем файле» введите путь, например
%SystemRoot%\System32\imageres.dll, и нажмите Enter. - 🎨 Прокрутите список, выберите понравившуюся иконку и подтвердите кнопкой «ОК».
Чтобы посмотреть другую библиотеку, просто подставьте её имя в тот же путь: %SystemRoot%\System32\moricons.dll или %SystemRoot%\System32\ddores.dll. Если файл не содержит иконок, диалог покажет пустой список или сообщение об отсутствии значков.
Как извлечь иконку из DLL в отдельный файл
Штатный диалог Windows позволяет только назначить значок, но не сохранить его как файл. Если нужна иконка в формате .ico или .png — например, для своей программы или сайта — потребуется сторонняя утилита-просмотрщик ресурсов.
Общий принцип работы таких инструментов одинаков: вы открываете DLL, программа выводит дерево ресурсов, а затем позволяет экспортировать выбранную иконку. Известные примеры подобных утилит — IconsExtract и редакторы ресурсов вроде Resource Hacker; перед использованием любой программы скачивайте её только с официального сайта разработчика и проверяйте файл антивирусом.
☑️ Безопасное извлечение иконки из DLL
⚠️ Внимание: никогда не редактируйте и не заменяйте оригинальные системные DLL в папке
System32. Эти файлы защищены механизмом Windows Resource Protection, а их повреждение может привести к сбоям интерфейса, ошибкам проводника или невозможности загрузки системы. Работайте только с копией файла, скопированной в другую папку.
Как назначить значок из DLL папке, ярлыку и библиотеке
Для ярлыка всё делается через «Свойства → Сменить значок», как описано выше. С обычной папкой нюанс в том, что Windows сохраняет выбор в скрытом файле desktop.ini внутри этой папки — поэтому при переносе папки на другой диск значок иногда «слетает», если путь в записи был относительным или библиотека недоступна.
Запись в desktop.ini выглядит примерно так:
[.ShellClassInfo]
IconResource=C:\Windows\System32\imageres.dll,3
Число после запятой — это индекс иконки внутри библиотеки. Если вы вручную правите desktop.ini, убедитесь, что у файла выставлены атрибуты «скрытый» и «системный», а у самой папки — атрибут «только чтение» или «системная»: без этого проводник может проигнорировать настройку. Точное поведение зависит от версии Windows, поэтому при проблемах проще переназначить значок через стандартный диалог.
Почему индексы иконок отличаются на разных ПК
Набор ресурсов в shell32.dll и imageres.dll меняется от версии к версии Windows. Microsoft добавляет новые значки и иногда сдвигает нумерацию, поэтому ярлык, созданный на одном компьютере, на другом может показать другую картинку. Для переносимых ярлыков надёжнее использовать отдельный .ico-файл рядом с программой.
Типичные проблемы и их решения
Иногда после смены значка папка или ярлык продолжает показывать старую иконку. Чаще всего виноват кэш значков — Windows хранит миниатюры в файле iconcache в профиле пользователя и не всегда обновляет его сразу. Помогает перезапуск проводника через «Диспетчер задач» или выход из учётной записи и повторный вход.
Если диалог «Сменить значок» показывает пустой список, проверьте путь к библиотеке: опечатка в имени файла или указание несуществующего каталога даёт именно такой симптом. Также убедитесь, что вы открываете файл из System32, а не случайную одноимённую библиотеку из папки какой-нибудь программы.
- 🔄 Значок не обновляется — перезапустите Проводник через диспетчер задач.
- 📭 Пустой список иконок — проверьте правильность пути и имени DLL.
- ↩️ Значок сбросился после переноса папки — переназначьте его заново или используйте локальный файл
.ico. - 🛡️ Система блокирует доступ к файлу — это нормально, копируйте DLL в другую папку и работайте с копией.
⚠️ Внимание: не скачивайте «сборники системных DLL» с посторонних сайтов. Файлы
shell32.dllиimageres.dllуже есть в вашей системе, а библиотеки из интернета могут быть заражены или несовместимы с вашей версией Windows. Замена системной библиотеки чужой версией — один из верных способов получить незагружающуюся систему.
FAQ: частые вопросы о DLL со значками
Где находятся DLL со значками в Windows 10 и 11?
В папке C:\Windows\System32. Основные файлы — shell32.dll, imageres.dll, moricons.dll, ddores.dll. Быстрее всего открыть их через диалог «Сменить значок», введя путь с переменной %SystemRoot%.
Можно ли добавить свои иконки в shell32.dll?
Технически ресурсы в DLL можно редактировать специальными программами, но делать это с системным файлом крайне не рекомендуется: Windows защищает эти библиотеки, а их повреждение ломает интерфейс и может помешать загрузке. Вместо этого создайте собственную DLL ресурсов или используйте отдельные файлы .ico.
Чем отличается imageres.dll от shell32.dll?
shell32.dll — исторически более старая библиотека оболочки с базовыми значками, а imageres.dll содержит более современный набор иконок интерфейса. В актуальных версиях Windows обе присутствуют и дополняют друг друга.
Почему после обновления Windows значки на ярлыках изменились?
Обновления системы могут менять набор ресурсов и индексы иконок внутри библиотек. Ярлык ссылается на номер иконки, и если под этим номером оказалась другая картинка, внешний вид изменится. Решение — заново выбрать значок или использовать отдельный файл .ico.
Как вернуть стандартный значок папки?
Откройте свойства папки, перейдите на вкладку «Настройка», нажмите «Сменить значок» и выберите стандартную иконку папки из shell32.dll или imageres.dll. Альтернатива — удалить скрытый файл desktop.ini внутри папки, после чего Windows вернёт оформление по умолчанию.