Какая лучшая практика для извлечения значков?

#c# #winapi

#c# #winapi

Вопрос:

Я создал окно проводника, которое сканирует каталоги при загрузке на наличие типов файлов и т.д. при первой загрузке я использую

 internal static extern uint ExtractIconEx(string szFileName, uint nIconIndex, IntPtr[] phiconLarge, IntPtr[] phiconSmall, uint nIcons);
  

и

 internal static unsafe extern int DestroyIcon(IntPtr hIcon);
  

для сканирования зарегистрированных в данный момент значков, а затем я связываю их с файлами, которые я использую. он отлично работает на моей машине, но когда я запускаю его на других, я получаю ошибку с низким ресурсом.
итак, мой вопрос в том, какая практика лучше? идти тем путем, которым я иду, и загружать их все, или каждый раз, когда мне нужно перечислять каталог, чтобы искать тип файла и связывать его.

Комментарии:

1. Что заставляет вас думать, что значки являются источником ваших проблем с ресурсами? Сколько значков загружает ваша программа? Сколько это освобождает? Можете ли вы показать соответствующий код?

Ответ №1:

В качестве альтернативы вы могли бы сделать это с помощью system.drawing

 var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"c:xxxsome.file");
  

(Вам нужно будет изменить размер для небольшого размера оболочки)