Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-81655
MegaVolt
2003-08-12 10:03
2003.08.25
Как сравнить переменную процедурного типа?


14-81919
Best Gun
2003-08-06 16:27
2003.08.25
уязвимость RPC интерфейса в Windows (823980)


4-82016
DeMoN-777
2003-06-13 23:45
2003.08.25
Определение места курсора


3-81540
McSimm2
2003-07-31 09:55
2003.08.25
[Oracle] fields not is null


1-81796
Relaxxx
2003-08-15 12:00
2003.08.25
Как мне узнать количество дней в прошлом месяце???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский