Где хранится значок приложения .net? - PullRequest
3 голосов
/ 06 октября 2010

Я пытаюсь выяснить, где хранится значок моего приложения в VS 2008. В свойствах приложения запускаемого проекта я добавил значок с настройкой «Встроить манифест с настройками по умолчанию».

I 'Мне бы хотелось программно отображать значок в приложении, но я не могу понять, где хранится значок.

Как я могу получить ссылку на значок приложения из кода?

Ответы [ 3 ]

10 голосов
/ 06 октября 2010

Попробуйте это:

var icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
2 голосов
/ 06 октября 2010

Хранится в разделе неуправляемых ресурсов исполняемого файла. Вы можете увидеть этот раздел с помощью File + Open + File и выбрав DLL или EXE. Откройте узел Icon. Ресурс с наименьшим номером - это тот, который Windows выбирает в качестве значка приложения.

В платформе .NET имеется пятнистая поддержка для доступа к неуправляемым ресурсам двоичного файла. Лучше всего использовать Icon.ExtractAssociatedIcon (), но вы не можете контролировать, какое из изображений на значке вы получите. Откатом пинвока является LoadImage (), но его сложно использовать. Безусловно, лучший способ - сделать значок доступным в управляемых ресурсах.

1 голос
/ 05 мая 2016

Проблема с Icon.ExtractAssociatedIcon заключается в том, что он извлекает только одно изображение из значка приложения. Однако приложения, разработанные для Win7 или новее, обычно предоставляют значки с несколькими изображениями в разных размерах / разрешениях. Чтобы получить значок объекта со всеми изображениями, я нашел полное решение здесь:

http://www.codeproject.com/Articles/29923/Assigning-an-application-s-icon-to-all-forms-in-th

...