Главная страница
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.017 c
9-6288
Константин
2002-10-30 10:24
2003.04.03
OpenGL - различия в инициализации в Winde и Linux


3-6420
PONTIY
2003-03-17 07:22
2003.04.03
Как узнать индекс (колонки) нажатой шапки в TRxDBGrid?


1-6589
BVS
2003-03-20 16:35
2003.04.03
jpeg to exe


1-6428
Артём К.
2003-03-23 13:59
2003.04.03
Как в MessageBox добавить в текст сообщения эл-т из TListBoxa


4-6877
Max2002
2003-02-03 17:48
2003.04.03
Управление IE на уровне команд