Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Извлечь иконку по расширению [D5, Win2k]


Navi ©   (2004-03-28 11:00:00) 

Уважаемые мастера!
Мне необходимо извлечь иконку и имя ассоциированного приложения, имея только расширение файла, т.е. ф-я ExtractAssociatedIcon не подходит. Как это можно сделать?
Спасибо.


Navi   (2004-04-03 20:12:00) [1]

TUser - а как по ним пробежаться-то (В TRegistry не нашел как узнать кол-во "записей" у ключа)


Dimaxx   (2004-03-30 22:30:00) [2]

Не до конца прочитал, сорри...


Dimaxx   (2004-03-30 22:29:00) [3]

Используйте ExtractAssociatedIcon из Shellapi - возвращает HIcon.


TUser   (2004-03-30 21:02:00) [4]

Тогда надо пробежаться по всем ключам из HKCR/.... Точнее - не по всем, а по тем, которые описывают зарегистрированные типы файлов.


Navi   (2004-03-30 20:40:00) [5]

Да не работает это только по расширению. Может я не то спросил - мне недо иконки всех зарегиситированных типов.


Юрий Федоров   (2004-03-28 11:21:00) [6]

function GetShellFileIcon(const FileName : string)  : HICON;
var SYSIL : THandle;
   SFI : TSHFileInfo;
begin
 Result:=0;
 FillChar(SFI, SizeOf(SFI), 0);
 SysIL := SHGetFileInfo(PChar(FileName), 0, SFI, SizeOf(SFI), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
 if SysIL <> 0
   then Result:=ImageList_GetIcon(SysIL, SFI.iIcon, 0)
   else RaiseLastOSError;

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо