Подтвердить что ты не робот

Как я могу получить значок из исполняемого файла только с экземпляром его Process in С#

Я могу получить исполняемое местоположение из процесса, как получить значок из файла?

Может быть, использовать windows api LoadIcon(). Интересно, есть ли способ .NET...

4b9b3361

Ответ 1

Icon ico = Icon.ExtractAssociatedIcon(theProcess.MainModule.FileName);

Ответ 2

Это пример из реализации консольного приложения.

using System;
using System.Drawing;         //For Icon
using System.Reflection;      //For Assembly

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //Gets the icon associated with the currently executing assembly
                //(or pass a different file path and name for a different executable)
                Icon appIcon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);                
            }
            catch(ArgumentException ae) 
            {
                //handle
            }           
        }
    }
}

Ответ 3

Используйте ExtractIconExздесь) p/invoke. Вы можете извлекать маленькие и большие значки из любой DLL или EXE. Shell32.dll имеет более 200 значков, которые весьма полезны для стандартного приложения Windows. Вам просто нужно сначала выяснить, какой индекс для нужного вам значка.

Изменить: я быстро нашел SO и нашел этот. Значок индекса 0 - значок приложения.