Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизКак извлечь значок у файла зная только его расширение? Найти похожие ветки
← →
Maxim Pshevlotsky (2003-08-14 06:21) [0]...коряво тема звучит ;) вот раскопал только апишную функцию, но чтобы извлечь с этой функ-и значок нужно знать полный путь к файлу:
var psfi: TShFileInfo;
Icon: TIcon;
begin
Icon:=TIcon.Create;
try
Images.Handle := ShGetFileInfo("C:\MyFile.txt", 0, psfi, sizeof(TSHFileInfo), SHGFI_SYSICONINDEX);
Images.ShareImages := true;
Images.DrawingStyle := dsTransparent;
Images.GetIcon(images.Count-1,Icon);
Image1.Picture.Icon:=Icon;
DestroyIcon(Images.Handle);
finally
icon.Free;
end;
Так вот как извлечь значок у файла зная только! расширение этого файла?
P.S. Это надо для того чтобы потом "надеть" значок на файл с соответствующим расширением который получу после вызова LIST ftp сервера. Вобщем как в CuteFTP справа видали?...
← →
Song (2003-08-14 08:59) [1]Вручную через реестр.
← →
servs (2003-08-14 09:52) [2]В примерах Дельфи есть "аля-проводник" винды. Он показывает содержимое твоего винта, и правильными иконками.
← →
wl (2003-08-14 10:19) [3]Есть вариант - создать пустой файл с нужным расширением нулевой длины и попробовать использовать Вашу функцию на этом файле, после чего файл удалить. Еще есть функция ExtractAssociatedIcon, но для неё тоже нужен путь к файлу.
← →
Толик (2003-08-14 11:05) [4]Так вот как извлечь значок у файла зная только! расширение этого файла?
А что делать, если это расширение exe? Или ico?
Потому и необходимо ИМЯ файла.
← →
clickmaker (2003-08-14 11:20) [5]Для стандартных зарегистрированных типов (.bmp, .doc и пр.) можно через реестр HKEY_CLASSES_ROOT\.jpg -> HKEY_CLASSES_ROOT\jpegfile\DefaultIcon + ExtractIconEx
← →
Maxim Pshevlotsky (2003-08-15 06:16) [6]wl © (14.08.03 10:19) [3]
Я и пошел этим путем. Но чтобы увеличить быстродействие я проверяю есть ли такое расширение в TSTringList(расширение=индекс значка), если нет то выполняю эту апишку и добавляю информацию в TSTringList, чтобы использовать в дальнейшем.
Но только фигня одна есть: У меня стоит XP, и поэтому все значки из Shell32.dll показываются с какой-то черной фигней, непонятно как от неё избавиться маска не помогает. Может знает кто?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c