Извлечь правильный значок 16x16, назначенный для файла?
Я связал SHGetFileInfo и ExtractIconEx, оба возвращают нормальный значок 32x32 и 16x16 только с 16 цветами, и это выглядит ужасно. Как извлечь полноцветный значок?
Мой код
SHFILEINFO shinfo = new SHFILEINFO();
IntPtr hImgSmall = SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_SMALLICON);
Icon icon = (Icon)System.Drawing.Icon.FromHandle(shinfo.hIcon).Clone();
DestroyIcon(shinfo.hIcon);
3 ответа
Я попробовал этот пример текст ссылки и работает..... получил 16*16 с альфа-каналом. Попытайся.
Вы пробовали следующее?
Icon LargeIcon = Icon.ExtractAssociatedIcon(fileName);
Icon SmallIcon = new Icon(LargeIcon, 16, 16);
Вы можете найти рабочие инструкции здесь: http://support.microsoft.com/?scid=kb;en-us;319350&x=14&y=9