Главная страница
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.014 c
3-81588
L.N.N.
2003-07-29 15:41
2003.08.25
Memo показывает только первую строчку


1-81737
3APA3A
2003-08-10 10:53
2003.08.25
Object Inspector


1-81669
Pindos
2003-08-10 23:54
2003.08.25
TIcon из EXE плохо сохраняется!


3-81573
Владий
2003-07-31 09:52
2003.08.25
Как сделать запрос?...


7-81972
Nikel
2003-06-09 21:06
2003.08.25
COM порт