将系统图标设置为项目图标
Posted
技术标签:
【中文标题】将系统图标设置为项目图标【英文标题】:Set System Icon as Project Icon 【发布时间】:2019-04-25 13:07:59 【问题描述】:我想从 Shell32.dll 图标库中设置项目图标(在清单中并表示编译为图标的 EXE)。
我在 *** 上找到了这篇关于“How can I use the images within shell32.dll in my C# project?”的文章,但它只显示了如何将图标加载为表单图标。我想把它作为项目图标,一旦它编译。甚至引用,而不是作为资源嵌入(如果可能的话)。
所以我的问题是:有可能吗?
【问题讨论】:
在项目属性窗口设置图标:i.stack.imgur.com/Ho5Vu.png exe的图标必须作为资源物理存在于这个exe中。您无法链接系统图标,但您可以像往常一样使用工具或编写几行代码来提取和分配它。 在发布之前,总结问题并提供详细信息和示例来描述您尝试过的内容。 【参考方案1】:主窗体仍然是一个窗体,可以用同样的方式进行操作。
假设您使用链接到的文章中的 IconExtractor 类,您可以执行以下操作:
public partial class Main : Form
private Icon extractedIcon;
public Main()
extractedIcon= IconExtractor.Extract("shell32.dll", 24, true);
InitializeComponent();
this.Icon = extractedIcon;
【讨论】:
他询问的是项目图标(例如应用程序的图标)而不是表单(根据他引用的文章,他已经知道该怎么做)。 正确@Styxxy,一旦程序已经运行,我知道如何从 DLL 中获取图标并放入表单(或其他任何东西); “Fabo.sk”我的意思是设置程序的图标,因为它将显示在资源管理器(EXE 文件的图标)上,指的是 dll 图标(如果可能),而不是将其作为资源嵌入。 在这种情况下@Sinatr 在他的评论中是正确的,该图标必须在编译时出现。 我相信这真的做不到——我可以从 DLL 中提取图标(使用这样的函数)保存为图标文件并用作项目图标——我不会那样做,因为可能这违反了 Windows EULA,也许吧?无论如何,在网上确实没有找到关于如何不嵌入图标并用作对 DLL 的“引用”的方法,无论如何,这样做听起来是错误的。以上是关于将系统图标设置为项目图标的主要内容,如果未能解决你的问题,请参考以下文章