Главная страница
    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.002 c
2-1360930799
Camaro
2013-02-15 16:19
2013.11.24
Считывание данных со стрима


15-1370337843
Павиа
2013-06-04 13:24
2013.11.24
Починка гриля


15-1370631977
NanoWeber
2013-06-07 23:06
2013.11.24
форумы нано


2-1354134587
toropoff
2012-11-29 00:29
2013.11.24
DirectShow Filters - DirectSound - set audio device


15-1370802219
alexdn
2013-06-09 22:23
2013.11.24
Вопрос про браузеры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский