我可以使用这种方法运行.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()
我该如何做到这一点?
答案 0 :(得分:3)
如果程序是非托管代码,例如C或C ++程序,则无法直接从.Net内存中启动它。您可以做的是将其打包为资源,将其流式传输到磁盘(临时文件夹),然后使用System.Diagnostics.Process类启动它。但它会显示在流程列表中。
如果你的程序是一个dll,你可以使用p / invoke来执行它的入口点方法。