Задача: вытащить системные иконки из файлов на диске.
Готовый класс для решения поставленной задачи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Иконка, соответствующая заданному типу файла public static Icon GetIcon(String _FilePath) { // Получаем ссылку на объект (иконку) SHFILEINFO _SHFileInfo; SHGetFileInfo(_FilePath, 0, out _SHFileInfo, Marshal.SizeOf(typeof(SHFILEINFO)), FileInfoFlags.SHGFI_ICON | FileInfoFlags.SHGFI_SMALLICON | FileInfoFlags.SHGFI_USEFILEATTRIBUTES); // Проверяем на присутствие данных if (_SHFileInfo.hIcon.ToInt32() != 0) // Возвращаем результат return Icon.FromHandle(_SHFileInfo.hIcon); // Возвращаем пустой объект return null; } |