Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.11.29;
Скачать: CL | DM;

Вниз

получить иконки из imageres.dll   Найти похожие ветки 

 
brother ©   (2015-04-04 10:00) [0]

Win7 x64, Delphi7 x32
Как? Даже Restorator 2009 выдернуть не может. Проблеммы x64?


 
KilkennyCat ©   (2015-04-04 12:04) [1]

ну, ресторатор 2009 не пуп земли, чтоб к нему применять слово "даже".
я пользуюсь http://www.nirsoft.net/utils/iconsext.html


 
Кто б сомневался ©   (2015-04-04 13:32) [2]

Этот откроет

http://www.angusj.com/resourcehacker/


 
brother ©   (2015-04-04 13:54) [3]

вообще, мне програмно надо)


 
junglecat ©   (2015-04-04 14:50) [4]

LoadImage()?


 
Кто б сомневался ©   (2015-04-05 17:13) [5]

Может это будет работать? PrivateExtractIcons

http://stackoverflow.com/questions/5955288/extract-all-icons-from-an-exe-without-using-extracticonex

https://msdn.microsoft.com/en-us/library/windows/desktop/ms648075(v=vs.85).aspx


 
brother ©   (2015-04-05 17:45) [6]

эх, видимо не найду быстро... больше 32x32 вытащить не получается


 
Eraser ©   (2015-04-05 18:48) [7]


> brother ©   (05.04.15 17:45) [6]

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


 
junglecat ©   (2015-04-05 18:52) [8]

hLib := LoadLibraryEx("imageres.dll", 0, LOAD_LIBRARY_AS_DATAFILE);
hImg := LoadImage(hLib, PChar(PInteger(1001)), IMAGE_ICON, 128, 128, 0);
Image1.Picture.Icon.Handle := hImg;
FreeLibrary(hLib);


 
Кто б сомневался ©   (2015-04-05 19:30) [9]


> brother ©   (05.04.15 17:45) [6]
>
> эх, видимо не найду быстро... больше 32x32 вытащить не получается


Я с exe вытягивал с [5] даже 64x64 - хотя такой иконки я точно не ложил, максимум 48x48. Видимо он ресайз делает под нужный размер.
Правда не знаю как в dll


 
brother ©   (2015-04-05 19:49) [10]

[8], http://stackoverflow.com/questions/5955288/extract-all-icons-from-an-exe-without-using-extracticonex
все выдирает 32х32, потом ресайзит под размер(


 
brother ©   (2015-04-05 19:51) [11]

вот это честно вытягивает:
procedure GetIconVista(FILE_NAME: Widestring; var icon: TBitmap32);
var
 siif : IShellItemImageFactory;
 size : TSize;
 icon_handle : HBitmap;
 bm : TBitmap;
begin
 SHCreateItemFromParsingName(PwideChar(FILE_NAME), nil, IID_IShellItemImageFactory, siif);

 size.cx := 48;
 size.cy := 48;

 siif.GetImage(size, {0} {SIIGBF_THUMBNAILONLY} SIIGBF_ICONONLY, icon_handle);
 bm := TBitmap.Create();
 bm.PixelFormat := pf32bit;
 try
   bm.Handle := icon_handle;
   icon:= TBitmap32.Create;
   icon.Width:= bm.Width;
   icon.Height:= bm.Height;
   icon.Assign(bm);
   icon.DrawMode:= dmBlend;
 finally
   bm.Free();
 end;
end;

но увы, индекс иконки тут нельзф указать...


 
Кто б сомневался ©   (2015-04-05 20:37) [12]


> вот это честно вытягивает:


А что значит честно, можешь подробнее рассказать?


> все выдирает 32х32, потом ресайзит под размер(

Т.е. если указать 16x16 или 48x48 то вернет иконку измененную на основе 32x32?
Я вроде визуально не заметил разницы.


 
Кто б сомневался ©   (2015-04-05 20:57) [13]

IID_IShellItemImageFactory

А, это только начиная с Висты, под XP не будет работать.


 
brother ©   (2015-04-06 08:14) [14]

> А что значит честно, можешь подробнее рассказать?

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

> Т.е. если указать 16x16 или 48x48 то вернет иконку измененную
> на основе 32x32?

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


 
brother ©   (2015-04-06 08:14) [15]

[13] покурю, спс...


 
brother ©   (2015-04-06 08:59) [16]

О_о . [13] в [11] я ее и юзаю!)



Страницы: 1 вся ветка

Текущий архив: 2015.11.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
15-1428569892
Ghost del vonte
2015-04-09 11:58
2015.11.29
Толи лыжи не едут, толи я...


15-1419436548
Kerk
2014-12-24 18:55
2015.11.29
delphimaster.net


15-1427465159
Polevi
2015-03-27 17:05
2015.11.29
java jsp


15-1427710781
Дмитрий Белькевич
2015-03-30 13:19
2015.11.29
Небольшая, но анноящая утечка памяти, помогите исправить


3-1305705190
Panky
2011-05-18 11:53
2015.11.29
Работа с таблицами