Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Иконки, ассоциированные с папкой/файлом


Автор: IDontBelieveInSilence 4.2.2007, 17:07
Пишу файловый менеджер. Подскажите, как узнать/вывести правильные иконки для папки/файла отвечающие  текущей ассоциации с ними?

Автор: Winprogrammer 4.2.2007, 17:29
Хм. Смотри в реестре. Точнее наверное ищи в реестре по ветке: HKCR. Там по идее прописываются все расширения к прогам. Там же лежат и пути к иконкам файлов. Наверно так.

А ты на какой дельфе пишешь? И как выглядит этот менеджер?

Автор: IDontBelieveInSilence 4.2.2007, 17:31
Цитата
Смотри в реестре. Точнее наверное ищи в реестре по ветке: HKCR. Там по идее прописываются все расширения к прогам. Там же лежат и пути к иконкам файлов. Наверно так.

Что-нибудь попроще..., что-нибудь на основе ImageList.

Цитата
А ты на какой дельфе пишешь? И как выглядит этот менеджер? 

На 2006-й. Выглядит как TotalCmd.

Автор: Winprogrammer 4.2.2007, 17:34
Хм. По-другому я не знаю. Наверно другого пути нет. Хотя... а каким компонентом ведешь обзор?

Автор: IDontBelieveInSilence 4.2.2007, 17:47
Цитата
а каким компонентом ведешь обзор?

TVirtualTrees

А может есть какой-нибудь компонент который экстрактит ассоциированные иконки?

Автор: Sunvas 4.2.2007, 18:30
Для папки:
 Ищи в этой папке файл Desktop.ini. Это обычный ini файл, в котором ты найдешь путь и параметры к иконке. Например:
Код

[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=162

Для файла:
Код

uses ShellApi; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  Icon: hIcon; 
  IconIndex: word; 

begin 
  IconIndex := 1; 
  Icon := ExtractAssociatedIcon(HInstance, 
    Application.ExeName, 
    IconIndex); 
  DrawIcon(Canvas.Handle, 10, 10, Icon); 
end; 

Автор: Beltar 5.2.2007, 19:37
ExtractAssociatedIcon была бы просто замечательно, если бы TTreeNode и TListItem можно было сопоставить Handle картинки. Если имеем, например TreeView с произвольным набором узлов каждый из которых файл, то на ум приходят какие-то массивы соответствия, расширений и номеров элементов ImageList'а в который были загружены нужные (т. е. TreeView вначале перебрать надо) иконки.

Цитата

А может есть какой-нибудь компонент который экстрактит ассоциированные иконки?


А потом про нас СИшники анекдоты рассказывают. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)