Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
7-81989
Itim
2003-06-04 16:25
2003.08.25
Работа с Web камерой.


7-81978
Red Alert
2003-06-09 13:09
2003.08.25
Как получить информацию о COM и LPT портах в системе?


1-81760
PsoFT
2003-08-14 15:19
2003.08.25
перевод из одного формата в другой


3-81593
Asker
2003-07-29 13:32
2003.08.25
Возварщение параметров хранимой процедуры (MSSQL+DBExpress)


14-81911
vopros
2003-08-07 14:29
2003.08.25
Люди помогите c Indy.Надо файл-вложения сделать.




   Наверх