Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить иконку, которая ассоцирована с типом файла? [D5]


Sour ©   (2003-02-04 09:09:00) 

Вообще необходимо реализовать следующее. Пользователь выбирает любой файл (*.*), а программа должна сохранить его иконку.
Для файлов *.exe уже не раз описывалось как это сделать, а как получить иконку файла напр, *.doc, т.е. вордовскую?


Nick_N_A   (2003-02-05 05:27:00) [1]

класс [NIKEL]
для делфи Uses shellapi,...

flags := SHGFI_ICON or SHGFI_USEFILEATTRIBUTES;
if (false)then flags:=flags or SHGFI_SMALLICON else flags:=flags or SHGFI_LARGEICON;
SHGetFileInfo("C:\EXplorer.exe", FILE_ATTRIBUTE_NORMAL, Info, sizeof(TSHFileInfo), flags);
DrawIcon(Canvas.Handle,0,0,info.hIcon);

Не подскажите, существуют ли в си properties,
т.е. переменные, если ей присваиваешь - компилятор создает процедуру, а если читаешь - функцию чтення, а пользуешься им как переменной


Sour   (2003-02-04 20:43:00) [2]

>>Gigabyte

Если можно, хотелось бы примерчик увидеть.

sourpost@nvkz.net


[NIKEL]   (2003-02-04 13:13:00) [3]

шелл апи тока подключи


HICON __fastcall GetAssociatedIcon(String Ext,bool small)
{

TSHFileInfo Info;
DWORD flags;
flags = SHGFI_ICON | SHGFI_USEFILEATTRIBUTES;
if(small) flags|= SHGFI_SMALLICON; else flags|= SHGFI_LARGEICON;

SHGetFileInfo(Ext.c_str(), FILE_ATTRIBUTE_NORMAL, &Info, sizeof(TSHFileInfo), flags);
return Info.hIcon;
}


DarkGreen   (2003-02-04 11:21:00) [4]

The ExtractAssociatedIcon function returns the handle of an indexed icon found in a file or an icon found in an associated executable file.

HICON ExtractAssociatedIcon(

HINSTANCE hInst, // application instance handle
LPTSTR lpIconPath, // path and filename of file for which icon is wanted
LPWORD lpiIcon // pointer to icon index
);


Gigabyte   (2003-02-04 10:30:00) [5]

файлы ShellAPI & ShlObj...
Структура TSHFileInfo...
Функция SHGetFileInfo.
Будет непонятно пришлю Example


Внук   (2003-02-04 09:25:00) [6]

В реестре в ветке HKEY_CLASSES_ROOT ищешь ветку именем - расширением, например .doc
Затем смотришь, куда она ссылается. В моем случае это ветка HKEY_CLASSES_ROOT\Word.Document.8
Там есть ключ DefaultIcon, где сказано, что за doc-файлами зарегистрирована иконка из файла Winword.exe за номером 1.
И т.д.


Наверх

Титульная страница Поиск, карта сайта Написать письмо