Как создать 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:
using System.Runtime.InteropServices; [DllImport("shell32.dll")] static extern IntPtr ExtractIcon(IntPtr hInst, string sFileName, int nIconIndex);
Итак, мы объявили фукнцию и теперь можем извлечь любой значок. Не забываем, что отчет значков идет с 0. Предположим, мы хотим вывести второй значок из DLL-файла в верхней части формы:
private void button1_Click(object sender, EventArgs e)
Как видите, ничего сложного. Удачного вам программирования!
Собственная 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 готова к использованию и вы можете ею полноценно пользоваться столько времени, сколько вам угодно. Кроме того, с этой библиотекой, вы можете ставить разного рода эксперименты, что так же удобно и по своему практично, так что, этот вариант настройки своей ОС вам уж точно должен понравиться.
Soft, интернет, безопасность: новости, статьи, советы, работа
Если вам уже приходилось заменять значки папок, то вы, стало быть, в курсе, что при этом система предлагает поискать альтернативный значок в файле 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 с сайта разработчика anolis.codeplex.com/releases/view/32286 и запустите. В главном меню выберите File → New и сохраните пока еще пустой файл DLL в удобном вам расположении, дав ему имя на латинице, допустим, ico.dll.


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



Нажмите «OK» и в левой колонке утилиты у вас появятся две папки Icon Image и Icon Directory, в них и будут храниться ваши иконки.

Если хотите, можете попробовать поиграть с настройками встроенного редактора иконок, изменив метод интерполяции или добавив задний фон.

Точно таким же образом одна за другой в библиотеку добавляются прочие иконки. Чтобы сохранить результаты работы, жмем кнопку Save – библиотека будет сохранена в каталог, из которого вы брали иконки.

Готово, теперь можете использовать свою библиотеку по назначению, подставляя к ней путь в окошке смены значка.
Смотри также:
- Бесплатные курсы, книги и прочие материалы по разработке 2016. http://fetisovvs.blogspot.com/2016/10/blog-post_20.html
- Какой язык программирования стоит выучить первым. http://fetisovvs.blogspot.com/2016/11/ds-nqqvdu-ruvdscom.html
- Научиться программировать сложнее, чем кажется. http://fetisovvs.blogspot.com/2015/12/blog-post_21.html
- Насколько важна математическая подготовка в перспективных направлениях разработки ПО. http://fetisovvs.blogspot.com/2016/11/blog-post_6.html
- 6 типичных ошибок при заключении договоров на разработку ПО. http://fetisovvs.blogspot.com/2016/11/6.html
- 7 правил создания красивых интерфейсов. http://fetisovvs.blogspot.com/2015/07/7.html
- 10 важных советов тем, кто решил научиться программировать. http://fetisovvs.blogspot.com/2015/10/10.html
- Идеальный программист. Часть 1. http://fetisovvs.blogspot.com/2016/12/1.html
- 10 мифов о работе в ИТ. http://fetisovvs.blogspot.com/2015/01/10.html
- 116 инструментов для разработчиков. http://fetisovvs.blogspot.com/2015/04/116.html
- Шпаргалка Java-программиста 5. Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java. http://fetisovvs.blogspot.com/2015/12/java-5-java-java.html
- GeekBrains: курсы от ведущих IT-специалистов. http://fetisovvs.blogspot.com/2015/09/geekbrains-it.html
- Hackr — сервис с сотнями курсов по различным языкам программирования. http://fetisovvs.blogspot.com/2015/03/hackr.html
- .NET-разработка: девять вопросов взрослым. http://fetisovvs.blogspot.com/2016/05/net.html
- В чем разница между фреймворком и библиотекой? http://fetisovvs.blogspot.com/2016/11/blog-post_90.html
- Pixie — лучшая программа для определения HTML, RGB цвета. http://fetisovvs.blogspot.com/2014/11/pixie-html-rgb.html
- PSPad Отличный текстовый редактор для программистов. http://fetisovvs.blogspot.com/2014/09/pspad.html
- А не дурак ли я? Поучительно для начинающих программеров. http://fetisovvs.blogspot.com/2014/04/blog-post_6836.html
- Векторная графика бесплатно — подборка сайтов. http://fetisovvs.blogspot.com/2016/03/blog-post_55.html
- Где найти иконки. http://fetisovvs.blogspot.com/2014/11/blog-post_16.html
- Зачем нужна Java. http://fetisovvs.blogspot.com/2014/07/java.html
- Как писать тестируемый код. http://fetisovvs.blogspot.com/2015/10/blog-post_7.html
- «Магия» программирования. http://fetisovvs.blogspot.com/2015/03/blog-post_87.html
- Великая ловушка программирования. http://fetisovvs.blogspot.com/2016/05/blog-post_59.html
- Насколько хороший вы программист? Тест Джоэла. http://fetisovvs.blogspot.com/2015/03/blog-post_7.html
- Не лезет в голову программирование? Попробуйте в него играть! http://fetisovvs.blogspot.com/2014/03/blog-post_20.html
- Неправильный, но быстрый способ стать программистом. http://fetisovvs.blogspot.com/2014/11/blog-post_21.html
- Нужно учить программирование! Ресурсы-помощники. http://fetisovvs.blogspot.com/2014/05/blog-post_8943.html
- Нужны ли дополнительные учебные курсы студенту-программисту? http://fetisovvs.blogspot.com/2014/12/blog-post_21.html
- Отъявленный программист: лайфхакинг из первых рук. http://fetisovvs.blogspot.com/2015/08/blog-post_74.html
- Оценка уровня оплаты разработчиков на тех или иных языках программирования. http://fetisovvs.blogspot.com/2014/12/blog-post_16.html
- Парадигма ситуационно-ориентированного программирования. http://fetisovvs.blogspot.com/2015/09/blog-post_15.html
- Программисты начали транслировать процесс разработки своих проектов на Twitch. http://fetisovvs.blogspot.com/2015/02/twitch.html
- Практикум: пишем вместе простенькую игру на Java. http://fetisovvs.blogspot.com/2014/05/java.htm
- Книга «Карьера программиста. 6-е издание». http://fetisovvs.blogspot.com/2016/06/6.html
- Юникод: необходимый практический минимум для каждого разработчика. https://www.blogger.com/blogger.g?blogID=79358826064008789#editor/target=post;postID=2420636049772252877;onPublishedMenu=overviewstats;onClosedMenu=overviewstats;postNum=21;src=link
Как сделать библиотеку dll с иконками
Сообщения: 114
Благодарности: 1
Как можно создать библиотеку dll с иконками, желательно способ по проще (я в программировании дуб),(просто заинтересовала тема MInstAll, и там сказано что иконки можно хранить в dll) если можно поясните?
Сообщения: 27449
Благодарности: 8086
Берёте какой-нибудь AWicons Lite, создаёте библиотеку иконок .icl и пользуете.
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 114
Благодарности: 1
а если уже есть готовые иконки, тогда тоже ей собирать?
Сообщения: 27449
Благодарности: 8086
Цитата rocet:
| а если уже есть готовые иконки, тогда тоже ей собирать? » |
Это сообщение посчитали полезным следующие участники:
Сообщения: 1255
Благодарности: 436
Просмотреть в какой dll какие иконки и под какими номерами, а также собрать свою библиотеку из найденных в папке иконок, можно в MiTeC Icon Explorer
![]()
Редактировать (добавлять/удалять) можно в Resource Hacker
Это сообщение посчитали полезным следующие участники:
Сообщения: 114
Благодарности: 1
Сrack, а как делаются значки(ico) которые содержат в себе несколько иконок?
скрин
Сообщения: 1255
Благодарности: 436
Цитата rocet:
| а как делаются значки(ico) которые содержат в себе несколько иконок » |
В любом нормальном редакторе иконок.
В ico-файле иконка одна, только как правило многоформатная, разных размеров и цветовой битности, делаются они для нормального масштабирования без искажений.
MInstAll загружает иконку 16×16, если ее нет, то самую маленькую из тех, что есть, но при этом заметны искажения.
Это сообщение посчитали полезным следующие участники:
Сообщения: 811
Благодарности: 96
в одном ico , кроме формата ,могут быть и разные картинки .при изменении вида — будет менятся и изображение иконки .
Последний раз редактировалось kazimir, 24-01-2014 в 23:34 .
Сообщения: 114
Благодарности: 1
Цитата Сrack:
В любом нормальном редакторе иконок. »
Редакторов много, какой посоветуешь.
(Axialis IconWorkshop подойдёт?)
Последний раз редактировалось rocet, 25-01-2014 в 12:14 .