Как создать dll файл с иконками

Обновлено: 04.07.2024

Вероятно вам приходилось видеть, что некоторые DLL-файлы содержат множество значков. Например, shell32.dll, imageres.dll и другие. Мы также можем создать такую библиотеку значков, которая будет храниться в DLL-файле. Также я покажу, как можно извлечь значки и вывести их на форме.

Шаг первый. Запустите Visual Studio 2010 и создайте новый проект Class Library. Для удобства я присвоил проекту имя IconLibrary.

Далее выбираем в меню File | New | File и в диалоговом окне выбираем пункт Native Resource Template и щелкаем на кнопке Open.

В результате будет создан файл ResTempl1.rct. Щелкните правой кнопкой на файле в Visual Studio и выберите команду Add Resource. .

В диалоговом окне Add Resource выберите элемент Icon и щелкните кнопку Import. . Вам необходимо указать значки, которые вы хотите импортировать. Рекомендую сложить все необходимые значки в одну папку и затем их выбрать сразу все (поддерживается множественный выбор). Когда вы щелкните кнопку Open, все значки будут импортированы под именами IDI_ICON1, IDI_ICON1 и т.д.

Снова выбираем команду Add Resource. и выбираем элемент Version и щелкаем на кнопке New. Будет создана заготовка для хранения информации о версии файла. Добавьте свою информацию о версии файла, названии продукта, торговой марке и т.д.

Далее необходимо сохранить файл ResTempl1.rct как res-файл (File | Save ResTempl1.rct as. и выберите расширение res).

Вернитесь на вкладку Class1.cs и выберите Project | IconLibrary Properties. . Установите переключатель Resource File и укажите путь к созданному ранее файлу ресурсов с расширением RES.

Далее выбираем Build | Build IconLibrary. В результате у нас образуется файл динамической библиотеки IconLibrary.dll.

Чтобы убедиться в том, что у нас появился полноценный DLL-файл со значками, выберите ярылк любого exe-файла, например, Notepad.exe и в свойствах ярлыка выберите кнопку Сменить значок. В диалоговом окне Смена значка через кнопку Обзор укажите путь к вашей библиотеке и вы увидите все значки, которые хранятся в вашем файле. Поздравляю, вы создали свою библиотеку значков.

Использование значков из DLL-файла

Существуют несколько вариантов использования DLL-файла со значками в собственных целях. Например, вы создали собственное расширение для своего приложения и в реестре можете прописать путь к вашему файлу и указать порядковый номер значка (эта тема выходит за рамки данной статьи).

Рассмотрим пример извлечения значка из Dll-файла и показа его на форме.

Создадим обычное приложение Windows Form Application и разместим на форме кнопку. Далее воспользуемся системной функцией Windows API ExtractIcon:

Итак, мы объявили фукнцию и теперь можем извлечь любой значок. Не забываем, что отчет значков идет с 0. Предположим, мы хотим вывести второй значок из DLL-файла в верхней части формы:

Создаем DLL-библиотеку с иконками в Windows 10

Если вы уже пытались произвести замену иконок в своей операционной системе Windows 10, то наверняка, у вас были в этом роде некоторые проблемы, так как изначально, ОС вам предложила воспользоваться альтернативными вариантами иконок, если вас не устраивали те, которые установлены по умолчанию. Вот только и тут скорее всего, все было не так уж и просто, так как вам пришлось отыскать файл «SHELL32.dll», который помещен в папку «system32» и только после этого, вы попытались внести свои коррективы в ОС, которые, скорее всего, были практически полностью тщетными.

Ну, а теперь, давайте разбирать все по этапам:

1. Скачиваем набор иконок в формате «ICO». Скаченные вами иконки, не должны иметь размер больше 256x256 пикселей каждая. Если это упростит вам работу с иконками, то можете переименовать их так, как вам это захочется.

2. Скачиваем утилиту Anolis Resourcer с официального сайта под названием.

3. Переходим к запуску Anolis Resourcer. Как только утилита запустится, вам необходимо будет нажать на кнопки: «File» → «New» → произвести сохранение пустого файла DLL в той области своего компьютера, которая для вас будет удобна для работы.



Обратите внимание, что создаваемая вами «динамическая библиотека», будет располагаться в левой части «Рабочего стола».

4. Жмем на «Import» → в открывшемся окне указываем полный путь до иконок располагающихся у вас в компьютере. Делается это при помощи клика по кнопке «Browse».




После нажатия на кнопку «Ок», можно будет заметить, что у вас на компьютере произошло создание двух новых папок, которые получили автоматические названия: «Icon Image» и «Icon Directory». Как раз именно во вновь созданных папках и будут храниться ваши иконки.




К слову сказать, благодаря утилите Anolis Resourcer, вы сможете настраивать отображение иконок так, как вам того захочется, так как здесь у вас возможности будут практически безграничны, вплоть до настраивания заднего фона у иконок, а о том, что можно произвести мелкие настройки иконок, и говорить не приходится.

Вот именно таким образом, мы и создаем DLL-библиотеку с иконками в Windows 10, которые полноценно работают и имеют возможность позволить любому пользователю кастомизировать свою операционную систем таким образом, каким этого еще не кто не делал.

Собственная DLL-библиотека с иконками в Windows 10

Некоторым пользователям ПК, уже самостоятельно приходилось производить замену значков папок в Win 10, а следовательно, вы уже видели, как операционная система предлагает использовать альтернативный вариант значка, который располагается в файле SHELL32.dll, который в свою очередь, находится в папке system32.

Для того, чтоб у вас все правильно получилось, вам необходимо скачать утилиту Anolis Resourcer и тот набор иконок в формате «ICO» с разрешением не более 256x256 пикселей, который вы собираетесь использовать.

Сразу дадим вам совет, что используемые вами иконки, лучше всего переименовать таким образом, чтоб было проще их использовать, так как в противном случае, велик шанс запутаться.

Производите запуск Anolis Resourcer и проделайте следующий лог действий: нажмите на «File» → «New» → сохраните в данный момент пустой файл DLL в удобном для вас месте. Обратите внимание, что сохраняемый DLL файл, должен непременно иметь имя на латинице «ico.dll».



Теперь, будущая динамическая библиотека, будет отображаться в левой части рабочего окна утилиты. Нажмите на кнопку «Import» для того, чтоб у вас открылось окно в котором необходимо указать путь до ваших иконок при помощи кнопки «Browse»:




После того, как вы нажмете на «Ок», в левой части окна утилиты (выглядит как колонка), вы увидите две вновь созданных папки с именами «Icon Image» и «Icon Directory» - в данных папках будут храниться иконки.


При желание, можете воспользоваться возможность настраивать иконки при помощи различных опций, среди которых имеется даже задний фон.


Остается поочередно добавить все иконки через утилиту и в итоге, нажать на «Save», что позволит сохранить библиотеку в каталог, из которого вы брали иконки.


На этом все! Ваша собственная DLL-библиотека с иконками в Windows 10 готова к использованию и вы можете ею полноценно пользоваться столько времени, сколько вам угодно. Кроме того, с этой библиотекой, вы можете ставить разного рода эксперименты, что так же удобно и по своему практично, так что, этот вариант настройки своей ОС вам уж точно должен понравиться.

Значки из dll

В предыдущей заметке я продемонстрировал, как можно изменить значки Корзины на любой произвольный. Правда, я не учел один важный момент, на который обратили мое внимание мои подписчики. Если в качестве значка Корзины выбрать какой-то файл изображения (например, ICO), то значок будет меняться не автоматически при попадании в Корзину файлов, а только при принудительном обновлении экрана, то есть при нажатии клавиши F5. Кроме этого, если удалить файл с изображением, то и значок Корзины исчезнет (это может произойти сразу или после перезагрузки компьютера).

Однако таких проблем не возникнет, если воспользоваться стандартными значками, которые находятся в специальном системном файле shell32.dll.

Библиотека shell32.dll

Отсюда можно вытекает, что если добавить свои иконки в такой системный файл, то и выше перечисленные проблемы будут решены.

И давайте посмотрим, как это можно сделать.

На самом деле, нам не обязательно добавлять иконки в уже существующий системный файл, а можно создать свой файл-библиотеку. Более того, я настоятельно НЕ рекомендую менять стандартные системный файлы, так как это может повлечь за собой абсолютно непредсказуемые последствия.

Итак, создадим свой файл-библиотеку с расширением DLL. Стоит сказать, что файлы DLL (Dynamic Link Library) — это так называемые динамически подключаемые библиотеки. По сути своей они являются контейнером, в котором могут находиться различные компоненты, используемые исполняемыми файлами (с расширением EXE).

То есть обычно мы запускаем программу именно с помощью исполняемого файла и этот файл может подгружать различные графические элементы или другие компоненты из динамических библиотек. Именно таки образом и используются значки из файла shell32.dll в операционной системе Windows.

В создании собственного DLL-файл со значками нам поможет замечательная утилита Resource Hacker. Когда-то очень давно я использовал данную программу для перевода на русский язык других программ. Она позволяет получить доступ ко «внутренностям» файлов и мы получаем возможность изменять их.

Resource Hacker является довольно мощной утилитой, имеющей множество возможностей. Однако мы будем ее использовать только для создания своей собственной динамической библиотеки с изображениями.

Итак, скачиваем, устанавливаем и запускаем утилиту. Она на английском языке и здесь много различных опций, но это не должно вас пугать, так как нам понадобится только одна кнопка, которая позволит добавить в качестве ресурса изображение.

Resource_Hacker

Необходимо заранее подготовить изображения и нажимаем на кнопку Select File, что означает «Выбрать файл».

Добавление изображения в DLL

Каждый ресурс в библиотеку добавляется отдельно, поэтому здесь мы можем выбрать только одно изображение. Далее нужно задать ему имя. По умолчанию предлагается название файла изображения.

Иконки в DLL

Можно его изменить, например, на 1. Аналогично добавляем и другие значки.

Далее щелкаем по кнопке, позволяющей сохранить проект как динамическую библиотеку.

Сохранить как DLL

Зададим название файла, например, korzina.dll. Не забываем через точку указать расширение DLL.

В нашем случае можно сохранить библиотеку, например, в Документы. Файл библиотеки должен остаться на компьютере, так как после замены значков в операционной системе она будет к нему постоянно обращаться. После всех манипуляций этот файл можно будет сделать, например, скрытым и тогда он не будет попадаться на глаза.

Файл DLL

Ну и все готово. Осталось только применить изображения из файла к Корзине, о чем подробно рассказывалось в предыдущей заметке.

Аналогичные библиотеки можно использовать для изменения значков других объектов, например, можно задать индивидуальные значки различным папкам.

Читайте также: