运行exe文件在C#中嵌入的资源(Run Exe file as an Embedded Resou

2019-07-21 20:38发布

我有一个第三方的EXE。 我只是需要从我的C#应用​​程序运行此。

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

有没有更好的方式来做到这一点?

我怎样才能做到这一点 ?

谢谢
门金加

Answer 1:

  1. 首先,嵌入式可执行文件的资源文件添加到您现有的资源文件,如果你没有一个,那么你就需要[添加现有项目到项目,并选择资源文件]
  2. 当您在资源编辑器页面中添加可执行文件,选择类型为[文件],然后找到你的嵌入式excutable文件,并添加它。 例如,文件名为“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"); 

    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); } 

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



Answer 2:

右键点击乌尔项目的解决方案资源管理器中再加入现有的项目选择对话框中的可执行文件,然后去你的exe文件的路径和在项目中添加你的EXE ..然后如果u想开始你的EXE按钮单击事件,然后编写代码的简单简单 ...

private void button_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("fire.EXE");
        }


Answer 3:

人们可以写一个简单的

private void ExtractResource(string resName, string fName)
 {
      object ob = Properties.Resources.ResourceManager.GetObject(resName, originalCulture);
      byte[] myResBytes = (byte[])ob;
      using (FileStream fsDst = new FileStream(fName, FileMode.CreateNew, FileAccess.Write))
      {
         byte[] bytes = myResBytes;
         fsDst.Write(bytes, 0, bytes.Length);
         fsDst.Close();
         fsDst.Dispose();
      }
}


文章来源: Run Exe file as an Embedded Resource in C#