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

Вниз

Работа с ассоциациями файлов   Найти похожие ветки 

 
MTsv DN   (2009-07-31 10:04) [0]

Всем привет...

Нашел один очень интересный момент. Естесссна про FileIconSystemIdx и FileIconSysIdxOffline я знаю, однако при открытии каталога с большим числом файлов производительность падает. Поэтому я стал использовать двусвязный список Extension <-> IconIdx. Что позволяет при работе программы сильно выиграть по времени. Но и тут меня не все устоило, поскольку при каждом запуске программы приходится сканировать реестр по расширению и заполнять список. Здесь я решил, только один раз (самый первый запуск) получать необходимые данные и сохранять их в файл и при последующих запусках просто читать данные из файла.
Это предистория, однако появились очень интересные грабли:
 S := NewReadFileStream("files_assocs.bin");
 ass := S.ReadStr;
 while ass <> "" do
  begin
   Ext := KOLString(Parse(ass, "|"));
   Ic_Ext.Add({$IFDEF UNICODE_CTRLS}WAnsiLowerCase{$ELSE}AnsiLowerCase{$ENDIF}(Ext));
   Ic_Idx.Add(KOLString(ass));
   FileIconSysIdxOffline(Ext);
   ass := S.ReadStr;
  end;
 S.Free;

Если выделенную строчку закомментировать, то иконки файлов не отображаются!!! Хотя в принципе этот вызов - "пустышка"!!!

Почему так выходит?

Полный проект здесь: http://slil.ru/27872306
P.S. Для тестов изменить путь. У меня "D:\1\"


 
Vladimir Kladov ©   (2009-07-31 20:38) [1]

Это скорее всего потому, что системный список иконок - это кэш, и он динамический. В нем не появляются иконки сами собой, требуется, чтобы какая-то программа (например, explorer) затребовала соответствующие ассоциации. Если не затребовать, то по этим позициям ничего не будет.



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1369857276
ClawClaw
2013-05-29 23:54
2013.11.24
Потрясающая память!


15-1370338957
Ламот
2013-06-04 13:42
2013.11.24
Как узнать IP камеры?


15-1370348553
"Добрый Сок"
2013-06-04 16:22
2013.11.24
Поскажите задачку, не соображу


15-1370594895
Новичок 4444
2013-06-07 12:48
2013.11.24
Как стать программистом ?


15-1370118603
Юрий
2013-06-02 00:30
2013.11.24
С днем рождения ! 2 июня 2013 воскресенье