在C#中将Exe文件作为嵌入式资源运行

men*_*col 15 c# embed resources exe

我有第三方EXE.我只需要从我的C#应用​​程序运行它.

我的主要目标是从我的C#文件中获取第三方可执行文件的版权.

有没有更好的方法来做到这一点.

我怎样才能做到这一点 ?

谢谢
Menaka

ljh*_*ljh 20

  1. 首先将嵌入的可执行文件作为资源文件添加到现有资源文件中,如果没有,则需要[将现有项添加到项目中,然后选择资源文件]
  2. 在资源编辑器页面中添加可执行文件时,选择type为[Files],然后找到嵌入的可删除文件并添加它.例如,名为"subexe.exe"的文件,则资源设计cs文件将添加以下代码:
    internal static byte[] SubExe {
            get {
                object obj = ResourceManager.GetObject("SubExe", resourceCulture);
                return ((byte[])(obj));
            }
        }
    
  3. 添加一个访问资源的方法,这也很简单,只需将以下代码添加到资源设计器cs文件即可

    
    public static byte[] GetSubExe()
        {
            return SubExe;
        }
    

  4. 在主要的可执行源代码中,添加以下内容以读取资源并将其写入新文件

    
    string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "A3E5.exe");

        using(FileStream fsDst = new FileStream(tempExeName,FileMode.CreateNew,FileAccess.Write))
        {
            byte[] bytes = Resource1.GetSubExe();
    
            fsDst.Write(bytes, 0, bytes.Length);
        }    
    
    Run Code Online (Sandbox Code Playgroud)

  5. 使用进程运行新的可执行文件

  • 这段代码可以让exe在运行时可以运行.我可以检查正在运行的进程,转到该文件夹​​,然后复制exe并删除包装器.所以这真的不那么安全. (3认同)