0

我是 C# 的一个完整的新手,我正在使用 Notepad++ 使用 CS-Script 插件为 notepad++ 进行编码。我在其中开发了一个小脚本。

在这样的脚本中,我使用了自己制作的托盘栏图标,并在脚本中包含了对它的引用以及以下代码行

trayIcon.Icon = new Icon("icon.ico");

这几乎可以满足我的需要......但请查看下图以进行澄清:

带有嵌入图标文件的二进制文件

比我准备使用 CS-Script 命令分发的 exe 文件,它运行良好。问题是编译过程没有将图标包含到二进制文件中,所以我必须手动将其自身的图标文件包含到二进制文件的同一目录中:实际上,如果图标文件生成的 exe 文件会挂起并出现错误不包括在内。

问题:

有没有办法解决这个问题并将“二进制包”全部放在一个文件中,其中包含可执行部分和 ico 资源文件?

约束:

我知道我可以创建 rar、zip 或压缩的 exe(自解压文件),但我并不是说:我想要 1 个带有图标的 exe 文件,可以单独执行和移动。换句话说,图标必须嵌入到独立的 exe 中,因为它是 exe 文件图标本身和 Windows 托盘栏的图标。

Notepad++ 中的 CS-Script 截图

4

1 回答 1

1

我发现这种方法可以Icon从 CS-Script 编译的二进制文件中的嵌入式资源中获取。图标文件名为alpha.ico.

请注意该using部分。

//css_resource alpha.ico

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;

class Script
{
    [STAThread]
    static public void Main(string[] args)
    {
        var assembly = Assembly.GetExecutingAssembly();

        using (var stream = assembly.GetManifestResourceStream("alpha.ico"))
        {
            var icon = new Icon(stream);
        }
    }
}
于 2017-04-05T21:03:16.360 回答