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

Вниз

Как получить иконку, которая ассоцирована с типом файла?   Найти похожие ветки 

 
Sour ©   (2003-02-04 09:09) [0]

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


 
Внук ©   (2003-02-04 09:25) [1]

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


 
Gigabyte ©   (2003-02-04 10:30) [2]

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


 
DarkGreen ©   (2003-02-04 11:21) [3]

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
);


 
[NIKEL] ©   (2003-02-04 13:13) [4]

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


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;
}



 
Sour ©   (2003-02-04 20:43) [5]

>>Gigabyte

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

sourpost@nvkz.net


 
Nick_N_A ©   (2003-02-05 05:27) [6]

класс [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,
т.е. переменные, если ей присваиваешь - компилятор создает процедуру, а если читаешь - функцию чтення, а пользуешься им как переменной



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
14-6671
NKiril
2003-03-15 15:25
2003.04.03
---|Ветка была без названия|---


3-6386
Новичок
2003-03-15 11:28
2003.04.03
Запись


14-6677
Lola
2003-03-18 12:52
2003.04.03
Люблю одесский юмор :)


3-6316
Arkady
2003-03-17 14:05
2003.04.03
Сохранить запрос в Access


14-6736
michael_b
2003-03-14 14:08
2003.04.03
автоматизация образовательного учреждения