我正在试图找出我的应用程序的图标在VS 2008中的存储位置。在启动项目的应用程序属性中,我添加了一个图标,其设置为“使用默认设置嵌入清单。”
我想以编程方式在应用程序中显示图标,但我无法确定图标的存储位置。
如何从代码中获取对应用程序图标的引用?
答案 0 :(得分:10)
试试这个:
var icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
答案 1 :(得分:2)
它存储在可执行文件的非托管资源部分中。您可以使用File + Open + File查看该部分并选择DLL或EXE。打开Icon节点。编号最小的资源是Windows选择的应用程序图标。
.NET框架中有一些不稳定的支持,用于访问二进制文件的非托管资源。这里你最好的选择是使用Icon.ExtractAssociatedIcon()但你无法控制你将获得的图标中的哪些图像。 pinvoke回退是LoadImage(),但很难使用。到目前为止,最好的方法是在托管资源中使图标可用。
答案 2 :(得分:1)
Icon.ExtractAssociatedIcon
的问题在于它只从应用程序的图标中提取一个图像。但是,为Win7或更新版本设计的应用程序通常会提供具有不同大小/分辨率的多个图像的图标。为了获得包含所有图像的图标对象,我在这里找到了一个完整的解决方案:
http://www.codeproject.com/Articles/29923/Assigning-an-application-s-icon-to-all-forms-in-th