Как получить иконку из .EXE или .DLL файла?

Процесс получения иконок из .EXE, .DLL или .ICO файлов полностью идентичен. Различие только в том, что в .ICO файле может храниться только одна иконка, а в .EXE и .DLL несколько. Для получения иконок из файлов, в модуле ShellAPI, есть функция:

function ExtractIcon(Inst: THandle; FileName: PChar; 
                             IconIndex: Word): HIcon;

где

Inst - указатель на приложение вызвавшее функцию,
FileName - имя файла из которого необходимо получить иконку,
IconIndex - номер необходимой иконки.

Если функция возвращает значение не равное нулю, то в файле есть следующая иконка.

Пример:

В данном примере в компонент Image1 выводится иконка запущенного файла.

USES ShellAPI; 
 
............ 
 
procedure TForm1.FormCreate(Sender: TObject); 
 VAR A: ARRAY [0..78] OF Char; 
 begin 
 
{Получение имени запущенного файла}
 StrPCopy(A, ParamStr(0));
 {Вывод на экран нулевой иконки из файла}
 Image1.Picture.Icon.Handle := ExtractIcon(HInstance, A, 0); 
 
end;

Последние комментарии

  • http://www.jinmeifood.com/home.php?mod=space&uid=102831 http://www.shouyou9.net/home.php?mod=space&uid=63850 http://partphoto.com/home.php?mod=space&uid=162731 http://dle1.prestashop-studio.ru/user/AlexisTresy/ http://bbs.daxgame.com/home.php?mod=space&uid=252568 http://www.xc2.info...
  • http://www.0757py.com/space-uid-538380.html http://finansy.su/user/RogelioDaw/ http://siwa8.info/home.php?mod=space&uid=71258 http://legfilm.ru/user/Georgebok/ http://mykazan.ru/dark/profile.php?id=245822 http://bbs.pcboard.cn/space-uid-24717.html https://www.igrimace.com/bbs/home.php?mod=space...
  • http://bbs.beidouauto.com/space-uid-316427.html http://dwww.shumo.com/forum/home.php?mod=space&uid=443584 http://www.myweboasis.com/messageboard/index.php?action=profile;u=500366 http://666weixiu.com/home.php?mod=space&uid=512906 http://www.shouyou45.com/space-uid-90072.html http://hhnysq....

Счетчики