代码之家  ›  专栏  ›  技术社区  ›  Mashmagar

.NET应用程序图标存储在哪里?

  •  3
  • Mashmagar  · 技术社区  · 15 年前

    我正试图找出我的应用程序图标在VS2008中的存储位置。在启动项目的应用程序属性中,我添加了一个设置为“使用默认设置嵌入清单”的图标。

    我想在应用程序中以编程方式显示图标,但我不知道该图标存储在哪里。

    如何从代码中获取对应用程序图标的引用?

    3 回复  |  直到 10 年前
        1
  •  10
  •   Andrew Hare    15 年前

    试试这个:

    var icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
    
        2
  •  2
  •   Hans Passant    15 年前

    它存储在可执行文件的非托管资源部分。您可以看到文件+打开+文件并选择dll或exe的部分。打开图标节点。编号最低的资源是Windows选择作为应用程序图标的资源。

    在.NET框架中,对访问二进制文件的非托管资源有零星的支持。这里最好的选择是使用icon.extractAssociatedIcon(),但您无法控制图标中的哪个图像。pinvoke回退是loadImage(),但很难使用。到目前为止,最好的方法是让图标在托管资源中可用。

        3
  •  1
  •   Doc Brown    10 年前

    问题在于 Icon.ExtractAssociatedIcon 它只从应用程序的图标中提取一个图像。但是,为Win7或更新版本设计的应用程序通常提供具有不同大小/分辨率的多个图像的图标。为了获得包含所有图像的图标对象,我在这里找到了一个完整的解决方案:

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