从字节数组中打开.exe文件

时间:2014-06-04 19:58:39

标签: c# .net process byte

我可以使用这种方法运行.net exe:

  Assembly a = Assembly.Load(bytes);
MethodInfo method = a.EntryPoint;
if (method != null)
    method.Invoke(a.CreateInstance(method.Name), null);

如何为非.NET exe做同样的事情?我不想编写.exe文件并像Process.Start()

一样运行它

我该如何做到这一点?

1 个答案:

答案 0 :(得分:3)

如果程序是非托管代码,例如C或C ++程序,则无法直接从.Net内存中启动它。您可以做的是将其打包为资源,将其流式传输到磁盘(临时文件夹),然后使用System.Diagnostics.Process类启动它。但它会显示在流程列表中。

如果你的程序是一个dll,你可以使用p / invoke来执行它的入口点方法。