Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2013.11.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2013.11.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.003 c
2-1361050015
Zuide
2013-02-17 01:26
2013.11.24
Prorisovat knopku


15-1370308346
brother
2013-06-04 05:12
2013.11.24
Что посмотреть подобного?


2-1360930799
Camaro
2013-02-15 16:19
2013.11.24
Считывание данных со стрима


15-1370336442
Дмитрий СС
2013-06-04 13:00
2013.11.24
Улучшители IDE Delphi 7


2-1360825301
alexdn
2013-02-14 11:01
2013.11.24
Раскрасить цвет выделения в Rich Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский