Войти

Показать полную графическую версию : [решено] Получение иконки из файла


LilLoco
14-07-2011, 11:19
Здравствуйте. Подскажите как получить иконку файла! Для exe и dll нашел! А вот как сделать для любых других?

Delirium
15-07-2011, 05:43
Не понял, тебе нужны просто иконки какие то? iconsearch.ru - туча иконок на все что можно :)

LilLoco
15-07-2011, 07:52
Delirium, Не :) Нужно не это. Сейчас объясню. Предположим есть некий документ Microsoft Word, и есть приложение с ListView. В LsitView нужно добавить этот документ, чтобы он отображался с такой же иконкой как и в проводнике.

Iska
15-07-2011, 08:09
Обычно так:

1. Ищем в реестре расширение: «HKEY_CLASSES_ROOT\.doc». Берём значение из «HKEY_CLASSES_ROOT\.doc\(Default)» (например, «Word.Document.8»).
2. Ищем «HKEY_CLASSES_ROOT\Word.Document.8», берём значение из «HKEY_CLASSES_ROOT\Word.Document.8\DefaultIcon\(Default)» (например, «C:\WINDOWS\Installer\{90110419-6000-11D3-8CFE-0150048383C9}\wordicon.exe,1»).

Далее, как в #1 (http://forum.oszone.net/post-1713050-1.html).

Delirium
15-07-2011, 08:37
Надо тоже взять на заметку, мне в документообороте пригодится... :)

Iska
15-07-2011, 09:07
Может быть, LilLoco спрашивал именно про .Net? Тут я пас, не знаю, может быть и есть готовые методы.

А так — вот ссылки по теме:
DefaultIcon (COM) (http://msdn.microsoft.com/en-us/library/ms682212(v=vs.85).aspx)
Registering a Program's Icon (http://msdn.microsoft.com/en-us/library/cc144109(v=vs.85).aspx#registering_an_icon)
How to Assign a Custom Icon to a File Type (Windows) (http://msdn.microsoft.com/en-us/library/hh127427(v=vs.85).aspx)

LilLoco
15-07-2011, 09:47
Так, спасибо всем за помощь! Нашел WinApi функцию, которая это может сделать :) Думаю это проще, чем копать в реестре! Но как говорится на вкус и цвет...
Вот описание функции (http://msdn.microsoft.com/en-us/library/bb762179%28v=vs.85%29.aspx). А вот пример (http://support.microsoft.com/kb/319350) использования на C#.

спрашивал именно про .Net? »
Ну мне нужно в .Net. Но информация полезна различная, не только конкретно этого.

Еще раз, огромное спасибо за помощь!




© OSzone.net 2001-2012