извлечение Icons из dll по имени ресурса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

извлечение Icons из dll по имени ресурса

Сообщение -=TsA=- » 19.05.2006 (Пт) 18:45

Как извлеч иконку из dll по индексу я знаю.
А как его извлечь если индекс неизвестен, а известно только имя ресурса? или как узнать индекс по его имени?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 19.05.2006 (Пт) 18:50

Хакер
-=TsA=- писал(а):Как извлеч иконку из dll по индексу я знаю
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 19.05.2006 (Пт) 19:02

После небольшой прогулки по просторам гугла я начал все больше склоняться к мнению, что специальных API функций для решения данной проблемы нет. Но решение, конечно, есть - пробежаться по таблице ресурсов PE-файла и ручками найти нужный икон. У Темыча на сайте есть его пример, где просмотр иконок и курсоров осуществляется без стандартных функций WinAPI для работы с изображениями и ресурсами.
А я все практикую лечение травами...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.05.2006 (Пт) 19:02

-=TsA=-
Так ведь в LoadIcon второй пакраметр-имя ресурса...
Изображение

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 19.05.2006 (Пт) 19:09

keks-n писал(а):-=TsA=-
Так ведь в LoadIcon второй пакраметр-имя ресурса...


Спасибо, щас посмотрим :salut:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.05.2006 (Пт) 19:45

Twister писал(а):Хакер
-=TsA=- писал(а):Как извлеч иконку из dll по индексу я знаю


Человек сначала не разглядел, а потом увидел "я знаю" и удалил пост. А вам бы только повозмущаться...

Вот и получается что ты на пустое место говоришь :D
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 19.05.2006 (Пт) 20:35

keks-n писал(а):-=TsA=-
Так ведь в LoadIcon второй пакраметр-имя ресурса...


Чего-то я не понял, а как файл то указать откуда загружаем иконку?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.05.2006 (Пт) 20:43

hInstance, как же ещё?
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.05.2006 (Пт) 21:43

-=TsA=-
hInstance=LoadLibraly(Имя_DLL)
hIcon=LoadIcon(hInstance,Имя_ресурса)
Изображение

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 20.05.2006 (Сб) 10:11

keks-n писал(а):-=TsA=-
hInstance=LoadLibraly(Имя_DLL)
hIcon=LoadIcon(hInstance,Имя_ресурса)


Грузит только иконки 32х32, а мне нужно 16х16 :( ,
в ExtractIconEx можно выбрать нужный размер
так что вопрос остается открытым: как по имени получить индекс?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 20.05.2006 (Сб) 10:24

Посмотри LoadImage, там есть возможность задания нужного размера
Весь мир матрица, а мы в нем потоки байтов!

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 20.05.2006 (Сб) 11:33

!Viper! писал(а):Посмотри LoadImage, там есть возможность задания нужного размера


Уже пробовал, некрасиво получается...
Сам попробуй, получается на много хуже оригинала
Вложения
Icon.zip
Иконки (3 шт)
(18.74 Кб) Скачиваний: 35

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 20.05.2006 (Сб) 11:38

Значит LoadImage не вытаскивает значок нужного размера, а меняет размер значка размера 32х32...
Весь мир матрица, а мы в нем потоки байтов!

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 20.05.2006 (Сб) 13:29

-=TsA=-
Вручную уменьшай- не так уж сложно. Если влом вручную-юзай обёртку для GDI+ от Тёмыча.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList  
cron