Я могу получить расположение исполняемого файла процесса, как я могу получить значок из файла?
Может быть, использовать windows api LoadIcon (). Интересно, есть ли способ .NET ...
Icon ico = Icon.ExtractAssociatedIcon(theProcess.MainModule.FileName);
Это пример реализации консольного приложения.
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 } } } }
Используйте ExtractIconEx (и здесь ) p / invoke. Вы можете извлечь маленькие и большие иконки из любой DLL или EXE-файла. Сам Shell32.dll имеет более 200 значков, которые весьма полезны для стандартного приложения Windows. Вам просто нужно сначала выяснить, что такое индекс для нужной вам иконки.
Изменить: Я сделал быстрый поиск SO и нашел это . Значок индекса 0 является значком приложения.