Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.11.29;
Скачать: [xml.tar.bz2];

Вниз

получить иконки из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
3-1305705190
Panky
2011-05-18 11:53
2015.11.29
Работа с таблицами


2-1402466591
Интересующийся
2014-06-11 10:03
2015.11.29
Как сделать локальные переменные многопоточными ?


15-1428701404
Юрий
2015-04-11 00:30
2015.11.29
С днем рождения ! 11 апреля 2015 суббота


1-1334433776
Дмитрий
2012-04-15 00:02
2015.11.29
Запуск Java приложения в Delphi


2-1402256430
Dimka-super
2014-06-08 23:40
2015.11.29
Циклы и рисование пикселей на форме . Помогите нормально написат





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский