Как создать собственную DLL-библиотеку с иконками
Как создать 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
verba volant, scripta manent
Создание собственной библиотеки с иконками
Умение создавать собственные динамические библиотеки (*.dll) со всевозможными ресурсами меня привлекала очень давно. Так как я не знаю языков программирования низкого уровня, проблема для меня оставалась актуальной. Желание начать “творить сегодня” нагнетало еще больше день ото дня. Учить C++/VB.NET только из-за умения создавать собственные библиотеки не очень то и хотелось.
И вот в один прекрасный день, совершенно случайно бродя по разным сайтам, я нашел программу для создания собственных библиотек.
На сей мажорной ноте закончу с лирическим вступлением и покажу как делать собственные библиотеки с иконками.
Инструменты которые нам понадобятся:
- Anolis Resourcer
- Paint.Net (или любой другой растровый редактор, который умеет работать с форматом – .ico)
- Плагин для Paint.Net позволяющий работать с форматом – .ico (Icon, Cursor, and Animated Cursor Format v3.7)
- Иконки. Я скачивал иконки с сайта www.iconsearch.ru много хороших и бесплатных иконок под лицензией GNU GPL, GNU LGPL и т.д.
Так как я использую Paint.Net для своих целей, описывать процесс конвертации из png в ico буду на примере оного. Процесс конвертации из png в ico, в других редакторах, я думаю мало чем отличается.
Для работы нам необходима всего 1 иконка размером не более 256 px.
Итак, поехали!
- Запускаем Paint.Net и открываем нашу иконку (Файл-Открыть-Выбираем нашу иконку-ок)
- Файл — Сохранить как — путьимя_нашей_иконки.ico. После появится диалоговое окно в котором нам будет предложено выбрать размеры иконок. Я выбрал 128, 64, 48, 32, 24, 16 пикселей, с глубиной цвета 32 бита. Остальное менять не следует.
- Запускаем Anolis Resourcer
- File – New (задаем имя нашей библиотеки и выбираем где её сохранить)
- Далее жмем Import и получаем вот такое окно:
- Выставляйте параметры как на картинке.
- Зачем нужен язык, я честно говоря не знаю, поставил на всякий случай английский, хотя русский так же можно выбрать.
- Путь до нашей иконки.
- Тип ресурса. Самый важный параметр. Так как у нас все иконки в одном файле, это получается Icon Directory, но вы не пугайтесь, так и должно быть.
- Остальное не изменяйте. Жмите ок.
- Теперь нажмите Ctrl+S, чтобы сохранить нашу библиотеку.
- Начинайте использовать
Как создать собственную DLL-библиотеку с иконками
Если вам уже приходилось заменять значки папок, то вы, стало быть, в курсе, что при этом система предлагает поискать альтернативный значок в файле SHELL32.dll, расположенный в папке system32. Спрашивается, почему Windows хранит иконки именно в DLL-файлах, а не в отдельных папках и что вообще представляют собой файлы DLL?
Файлы DLL или Dynamic Link Library они же динамически подключаемые библиотеки представляют собой контейнеры, нечто вроде архивов, в которых могут храниться различные используемые исполняемыми файлами EXE компоненты, например, фрагменты кода или графические элементы, в нашем случае иконки. Использование DLL в Windows основано на принципе модульности, причем каждая отдельная совместимая библиотека может быть подключена к тому или иному приложению, тем самым расширяя его функциональные возможности.
Сегодня мы научимся создавать такие библиотеки самостоятельно. Так как их содержимое будет ограничиваться одними лишь иконками, нам не потребуется ни пакет разработчика Microsoft Visual Studio, ни знания языков программирования C++ или VB.NET. А понадобится нам лишь маленькая утилита Anolis Resourcer и набор иконок в формате ICO размером не более 256×256 пикселей. Иконки необходимо переименовать в порядке следования, чтобы с ними было удобнее работать.
Скачайте утилиту Anolis Resourcer с сайта разработчика и запустите. В главном меню выберите File → New и сохраните пока еще пустой файл DLL в удобном вам расположении, дав ему имя на латинице, допустим, ico.dll.
При этом будущая динамическая библиотека отобразится в левой колонке рабочего окна утилиты. После этого нажмите на панели инструментов кнопку Import и в открывшемся окошке укажите путь к файлу иконки, нажав кнопку «Browse». Больше ничего в настройках менять не нужно.
Нажмите «OK» и в левой колонке утилиты у вас появятся две папки Icon Image и Icon Directory, в них и будут храниться ваши иконки.
Если хотите, можете попробовать поиграть с настройками встроенного редактора иконок, изменив метод интерполяции или добавив задний фон.
Точно таким же образом одна за другой в библиотеку добавляются прочие иконки. Чтобы сохранить результаты работы, жмем кнопку Save – библиотека будет сохранена в каталог, из которого вы брали иконки.
Готово, теперь можете использовать свою библиотеку по назначению, подставляя к ней путь в окошке смены значка.
Собственная DLL-библиотека с иконками в Windows 10
Некоторым пользователям ПК, уже самостоятельно приходилось производить замену значков папок в Win 10, а следовательно, вы уже видели, как операционная система предлагает использовать альтернативный вариант значка, который располагается в файле SHELL32.dll, который в свою очередь, находится в папке system32.
Для того, чтоб самостоятельно упростить вышеописанную вкратце процедуру, вам необходима собственная DLL-библиотека с иконками в Windows 10, которая станет для вас в некотором роде «контейнером» или же «библиотекой». Особенность данного хранилища в том, что научившись создавать его единожды, он всегда у вас будет под рукой и при необходимости вы сможете использовать его для иных целей, чем хранение иконок. Так же у вас будет возможность быстро создать новое хранилище, которое вам будет так же необходимо для иных целей. Кроме того, данный способ идеально подходит для тех из вас, кто не желает использовать пакет разработчика Microsoft Visual Studio и уж тем более, не имеет не каких знаний языков программирования C++ или VB.NET.
Для того, чтоб у вас все правильно получилось, вам необходимо скачать утилиту Anolis Resourcer и тот набор иконок в формате «ICO» с разрешением не более 256×256 пикселей, который вы собираетесь использовать.
Сразу дадим вам совет, что используемые вами иконки, лучше всего переименовать таким образом, чтоб было проще их использовать, так как в противном случае, велик шанс запутаться.
Производите запуск Anolis Resourcer и проделайте следующий лог действий: нажмите на «File» → «New» → сохраните в данный момент пустой файл DLL в удобном для вас месте. Обратите внимание, что сохраняемый DLL файл, должен непременно иметь имя на латинице «ico.dll».
Теперь, будущая динамическая библиотека, будет отображаться в левой части рабочего окна утилиты. Нажмите на кнопку «Import» для того, чтоб у вас открылось окно в котором необходимо указать путь до ваших иконок при помощи кнопки «Browse»:
После того, как вы нажмете на «Ок», в левой части окна утилиты (выглядит как колонка), вы увидите две вновь созданных папки с именами «Icon Image» и «Icon Directory» – в данных папках будут храниться иконки.
При желание, можете воспользоваться возможность настраивать иконки при помощи различных опций, среди которых имеется даже задний фон.
Остается поочередно добавить все иконки через утилиту и в итоге, нажать на «Save», что позволит сохранить библиотеку в каталог, из которого вы брали иконки.
На этом все! Ваша собственная DLL-библиотека с иконками в Windows 10 готова к использованию и вы можете ею полноценно пользоваться столько времени, сколько вам угодно. Кроме того, с этой библиотекой, вы можете ставить разного рода эксперименты, что так же удобно и по своему практично, так что, этот вариант настройки своей ОС вам уж точно должен понравиться.
Изменяем значок Корзины (своя dll-библиотека)
В предыдущей заметке я продемонстрировал, как можно изменить значки Корзины на любой произвольный. Правда, я не учел один важный момент, на который обратили мое внимание мои подписчики. Если в качестве значка Корзины выбрать какой-то файл изображения (например, ICO), то значок будет меняться не автоматически при попадании в Корзину файлов, а только при принудительном обновлении экрана, то есть при нажатии клавиши F5. Кроме этого, если удалить файл с изображением, то и значок Корзины исчезнет (это может произойти сразу или после перезагрузки компьютера).
Однако таких проблем не возникнет, если воспользоваться стандартными значками, которые находятся в специальном системном файле shell32.dll.
Отсюда можно вытекает, что если добавить свои иконки в такой системный файл, то и выше перечисленные проблемы будут решены.
И давайте посмотрим, как это можно сделать.
На самом деле, нам не обязательно добавлять иконки в уже существующий системный файл, а можно создать свой файл-библиотеку. Более того, я настоятельно НЕ рекомендую менять стандартные системный файлы, так как это может повлечь за собой абсолютно непредсказуемые последствия.
Итак, создадим свой файл-библиотеку с расширением DLL. Стоит сказать, что файлы DLL (Dynamic Link Library) — это так называемые динамически подключаемые библиотеки. По сути своей они являются контейнером, в котором могут находиться различные компоненты, используемые исполняемыми файлами (с расширением EXE).
То есть обычно мы запускаем программу именно с помощью исполняемого файла и этот файл может подгружать различные графические элементы или другие компоненты из динамических библиотек. Именно таки образом и используются значки из файла shell32.dll в операционной системе Windows.
В создании собственного DLL-файл со значками нам поможет замечательная утилита Resource Hacker. Когда-то очень давно я использовал данную программу для перевода на русский язык других программ. Она позволяет получить доступ ко «внутренностям» файлов и мы получаем возможность изменять их.
Скачать утилиту можно с сайта разработчика — http://www.angusj.com/resourcehacker
Resource Hacker является довольно мощной утилитой, имеющей множество возможностей. Однако мы будем ее использовать только для создания своей собственной динамической библиотеки с изображениями.
Итак, скачиваем, устанавливаем и запускаем утилиту. Она на английском языке и здесь много различных опций, но это не должно вас пугать, так как нам понадобится только одна кнопка, которая позволит добавить в качестве ресурса изображение.
Необходимо заранее подготовить изображения и нажимаем на кнопку Select File, что означает «Выбрать файл».
Каждый ресурс в библиотеку добавляется отдельно, поэтому здесь мы можем выбрать только одно изображение. Далее нужно задать ему имя. По умолчанию предлагается название файла изображения.
Можно его изменить, например, на 1. Аналогично добавляем и другие значки.
Далее щелкаем по кнопке, позволяющей сохранить проект как динамическую библиотеку.
Зададим название файла, например, korzina.dll. Не забываем через точку указать расширение DLL.
В нашем случае можно сохранить библиотеку, например, в Документы. Файл библиотеки должен остаться на компьютере, так как после замены значков в операционной системе она будет к нему постоянно обращаться. После всех манипуляций этот файл можно будет сделать, например, скрытым и тогда он не будет попадаться на глаза.
Ну и все готово. Осталось только применить изображения из файла к Корзине, о чем подробно рассказывалось в предыдущей заметке.
Аналогичные библиотеки можно использовать для изменения значков других объектов, например, можно задать индивидуальные значки различным папкам.
Как создать собственную DLL-библиотеку с иконками
В темах с коллекциями скинов вопросы и обсуждения запрещены! Пожалуйста внимательно читайте заголовки тем.
Crystal Icon Set (QVGA & VGA) – это одна из многих библиотек от программы IconXT. Зайдя по приведённой чуть ниже ссылке, можно скачать файлы с расширением *.ixt. Скачайте файл и смените расширение с *.ixt на *.dll. Взято с JDH Software.com:
_http://www.jdhsoftware.com/index.php?file=Page&name=IconXT_Skins
Author/Copyrights: CrystalXP, Everaldo
Вот как то давно делал иконки для SK Shortcut Manager
img-9389-1234.JPG
И так же юзаю их для подмены в файле ResHacker’ом 😀
Все иконки находятся в одном dll! Суммарно их порядка 197 штук размеры 16х16, 32х32, 64х64
Download : VAIO_SK_Shortcut_Manager.zip
Сообщение отредактировал e202 – 06.10.06, 07:02
Вот у братьев белорусов на wce.by нашел.Для VGA ничё так смотрится(хотелось бы получше) , а на qVGA думаю будут отлично смотреться.
Vista Inspirat (QVGA & VGA) – это одна из многих библиотек от программы IconXT. Для того, чтобы вновь использовать данную библиотеку в IconXT, достаточно сменить расширение на .ixt, то есть, переименовать VistaInspirat.dll в VistaInspirat.ixt.
Author/Copyrights: Crystal XP, dlb
Vista Cameleon (QVGA & VGA) – это одна из многих библиотек для программы IconXT.
Macintosh Icon Set (QVGA & VGA) – это одна из многих библиотек для программы IconXT.
VBTWO or Vista Beta Lite (QVGA & VGA) – это одна из многих библиотек для программы IconXT.
VAIO Icon Set (QVGA & VGA) – это одна из многих библиотек для программы IconXT.
Windows Vista PE (QVGA) – это одна из многих библиотек для программы IconXT.
Vista RC1 (QVGA & VGA) – это одна из многих библиотек для программы IconXT.
IconsLib (QVGA) – библиотека иконок 16*16 и 32*32. Размер: 64kB