将系统图标设置为项目图标

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 的“引用”的方法,无论如何,这样做听起来是错误的。

以上是关于将系统图标设置为项目图标的主要内容,如果未能解决你的问题,请参考以下文章

Qt设置系统托盘图标和程序图标

win7怎样把桌面图标下面字体的白色底色去掉?

JavaFX。为标题栏和操作系统任务栏设置不同的图标

为各种 Android 操作系统版本设置推送通知图标

如何将delphi程序图标放入系统托盘中?

Linux系统下为任何应用创建启动图标