Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Получение иконки из файла (http://forum.oszone.net/showthread.php?t=211156)

LilLoco 14-07-2011 11:19 1713050

Получение иконки из файла
 
Здравствуйте. Подскажите как получить иконку файла! Для exe и dll нашел! А вот как сделать для любых других?

Delirium 15-07-2011 05:43 1713760

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

LilLoco 15-07-2011 07:52 1713781

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

Iska 15-07-2011 08:09 1713784

Обычно так:

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.

Delirium 15-07-2011 08:37 1713793

Надо тоже взять на заметку, мне в документообороте пригодится... :)

Iska 15-07-2011 09:07 1713807

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

А так — вот ссылки по теме:
DefaultIcon (COM)
Registering a Program's Icon
How to Assign a Custom Icon to a File Type (Windows)

LilLoco 15-07-2011 09:47 1713821

Так, спасибо всем за помощь! Нашел WinApi функцию, которая это может сделать :) Думаю это проще, чем копать в реестре! Но как говорится на вкус и цвет...
Вот описание функции. А вот пример использования на C#.

Цитата:

Цитата Iska
спрашивал именно про .Net? »

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

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


Время: 22:59.

Время: 22:59.
© OSzone.net 2001-