Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.25;
Скачать: CL | DM;

Вниз

Как извлечь значок у файла зная только его расширение?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-81777
777
2003-08-13 22:27
2003.08.25
Алгоритм


1-81826
Mdsns
2003-08-13 06:14
2003.08.25
Вызов процедуры


3-81560
alleb
2003-07-30 16:57
2003.08.25
TBytesField


1-81765
Жук
2003-08-14 11:55
2003.08.25
Координаты PopupMenu


3-81568
Leran2003
2003-07-30 12:37
2003.08.25
Midas