Icon.ExtractAssociatedIcon возвращает стандартную иконку

Пытаюсь реализовать что-то вроде диспетчера задач. При чтении иконок процессов с помощью Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap(), метод вернет стандартную иконку. При записи Icon.ExtractAssociatedIcon(@"F:\\opera\\72.0.3815.454\\opera.exe").ToBitmap() метод возвращает корректную иконку (в отладчике проверил, строки пути совпадают).

Исходный код метода:

private void GetProcessList()
        {
            processList = Process.GetProcesses();
            listView1.Items.Clear();
            int i = 0;
            Bitmap bmp = default;
            Bitmap emptyImage = new Bitmap(32, 32);
            foreach (var process in processList)
            {
                try
                {
                    // возвращает стандартную иконку
                    bmp = new Bitmap(Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap());
                    bmp.Save(@"D:\f.ico");
                    //возвращает корректную иконку
                    Bitmap bmp2 = new Bitmap(Icon.ExtractAssociatedIcon(@"F:\\opera\\72.0.3815.454\\opera.exe").ToBitmap());
                    bmp2.Save(@"D:\f2.ico");
                }
                catch (Win32Exception ex)
                {
                    using (Graphics g = Graphics.FromImage(emptyImage))
                    {
                        g.Clear(Color.White);
                    }
                }
                catch (InvalidOperationException exp)
                { 

                }
                ImageList imageList = default;
                imageList.ImageSize = new Size(32, 32);
                if (bmp.Width != 0)
                    imageList.Images.Add(bmp);
                else
                    imageList.Images.Add(emptyImage);
                listView1.SmallImageList = imageList;
                ListViewItem listViewItem = new ListViewItem(new string[] {"",process.ProcessName});
                listViewItem.ImageIndex = i;
                listView1.Items.Add(listViewItem);
            }
        }

Ответы (0 шт):