Извлечь иконку из EXE

Вобщем вопрос в следующем. Есть WPF приложение. Необходимо извлечь иконку из любого ехе. Например есть D:\1.exe нужно извлечь иконку из него, которая отображается в Explorer. Вот чего у меня получилось:
Icon ico = System.Drawing.Icon.ExtractAssociatedIcon("d:\\2.exe");Stream s = File.Create("d:\\ico.ico");ico.Save(s);s.Close();
Вобщем все хорошо сохраняется но есть одно НО - сохраняемая иконка всего 16 цветов. Хотя в exe она не 16ти цветная а 32 битная.Что не так? Спасибо.PS: Я в C# новичек но Delphi знаю на достаточном уровне. Такое там я делал а тут загвоздочка. Еще раз спасибо
7 ответов

SHGetFileInfo оооочень медленно вытягивает иконки из сетевых ресурсов 


возможно, не пробовал, но с локальных вытягивает с нормальной скоростью!!


Skalik, спасибо за ссылку, но я не совсем понял про
im.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; 
im какого типа то? Icon? не подходит пишу:
Icon ico;ico.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; 
говорит незнаю ColorDepth. В чем проблема? Я так понял ColorDepth это свойство не Icon а ImageList. Но я не использую ImageList


Ауу! Народ! Я так и не сделал, помогите чуток еще.


im какого типа то?
ImageList


Ну вот, мне и непонятно почему так. Я ее как только извлекаю сразу сохраняю и иконка сохраняется 16-ти цветная. Тоесть получается что извлекается уже такая, и хранится в переменной ico плохого качества. Что не так?