Как сделать библиотеку dll с иконками
Перейти к содержимому

Как сделать библиотеку dll с иконками

  • автор:

Как сделать библиотеку dll с иконками

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

Как создать DLL-файл со значками

Вероятно вам приходилось видеть, что некоторые 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-файла в верхней части формы:

evlanoff

Умение создавать собственные динамические библиотеки (*.dll) со всевозможными ресурсами меня привлекала очень давно. Так как я не знаю языков программирования низкого уровня, проблема для меня оставалась актуальной. Желание начать “творить сегодня” нагнетало еще больше день ото дня. Учить C++/VB.NET только из-за умения создавать собственные библиотеки не очень то и хотелось.

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

На сей мажорной ноте закончу с лирическим вступлением и покажу как делать собственные библиотеки с иконками.

Инструменты которые нам понадобятся:

  1. Anolis Resourcer
  2. Paint.Net (или любой другой растровый редактор, который умеет работать с форматом – .ico)
  3. Плагин для Paint.Net позволяющий работать с форматом – .ico (Icon, Cursor, and Animated Cursor Format v3.7)
  4. Иконки. Я скачивал иконки с сайта www.iconsearch.ru много хороших и бесплатных иконок под лицензией GNU GPL, GNU LGPL и т.д.

Так как я использую Paint.Net для своих целей, описывать процесс конвертации из png в ico буду на примере оного. Процесс конвертации из png в ico, в других редакторах, я думаю мало чем отличается.

Для работы нам необходима всего 1 иконка размером не более 256 px.

Итак, поехали!

  1. Запускаем Paint.Net и открываем нашу иконку (Файл-Открыть-Выбираем нашу иконку-ок)
  2. Файл — Сохранить как — путь\имя_нашей_иконки.ico. После появится диалоговое окно в котором нам будет предложено выбрать размеры иконок. Я выбрал 128, 64, 48, 32, 24, 16 пикселей, с глубиной цвета 32 бита. Остальное менять не следует.
  3. Запускаем Anolis Resourcer
  4. File – New (задаем имя нашей библиотеки и выбираем где её сохранить)
  5. Далее жмем Import и получаем вот такое окно:add_r_d
  6. Выставляйте параметры как на картинке.
    1. Зачем нужен язык, я честно говоря не знаю, поставил на всякий случай английский, хотя русский так же можно выбрать.
    2. Путь до нашей иконки.
    3. Тип ресурса. Самый важный параметр. Так как у нас все иконки в одном файле, это получается Icon Directory, но вы не пугайтесь, так и должно быть.
    4. Остальное не изменяйте. Жмите ок.

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

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

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

    Весь вышеописанный выше процесс, достаточно не простой и многим пользователям ПК не под силам, вот почему, мы вам расскажем о другом, которым пользуемся сами. Так как именно благодаря ему, мы самостоятельно создаем DLL-библиотеку с иконками в Windows 10, которая по сути, становится отдельным хранилищем, где будут размещаться новые иконки. Стоит отметить тот момент, что использование такого рода «хранилища», достаточно практично, так как вы единожды создадите его и будите пользоваться им столько, сколько вам это будет угодно. Так же, не последнее место именно в данном способе занимает тот момент, что вам не придется использовать пакет разработчика Microsoft Visual Studio, а о таких вещах, как языки программирования типа: C++ или VB.NET, вообще и думать не стоит, ведь мы научим вас все делать без них.

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *