![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извлечь иконку по расширению [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;