C# 从内存加载exe
时间: 2024-09-24 11:02:27 浏览: 17
在C#中,你可以使用`System.Diagnostics.Process`类以及`MemoryStream`来从内存加载`.exe`文件并执行它。下面是一个简单的示例,说明如何做到这一点:
首先,你需要将`.exe`文件的内容读入一个`MemoryStream`:
```csharp
byte[] executableBytes = File.ReadAllBytes(@"path\to\your\exe.exe"); // 替换为实际的.exe路径
using (MemoryStream ms = new MemoryStream(executableBytes))
{
// 执行操作
ms.Seek(0, SeekOrigin.Begin); // 设置位置回到开始,因为某些可执行文件头可能包含特定的定位信息
ExecuteFromMemory(ms);
}
// 定义执行方法,通常创建一个进程实例并传递MemoryStream
private static void ExecuteFromMemory(MemoryStream exeStream)
{
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "您的可执行程序名称", // 替换为你想要执行的实际程序名
Arguments = "", // 如果有命令行参数
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true, // 选择是否接收输出
RedirectStandardError = true, // 是否接收错误信息
InputStream = exeStream // 将MemoryStream设为输入流
};
using (Process process = new Process())
{
process.StartInfo = psi;
process.Start();
process.WaitForExit(); // 等待执行完成
// 接收输出和错误
Console.WriteLine(process.StandardOutput.ReadToEnd());
Console.WriteLine(process.StandardError.ReadToEnd());
}
}
```