-1

プロセスにリソースとして埋め込まれた実行可能ファイルがあり、ディスク上になくてもメモリから直接プロセスを実行したい場合。

static void Main()
{
const string pathOfExecutable = @"C:\WINDOWS\system32\notepad.exe"; //size = 67KB 
// read the bytes from the application EXE file
FileStream fs = new FileStream(pathOfExecutable, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] byteArray = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();


//Process.Start(byteArray) //Cannot use this, any other alternative?

}
4

3 に答える 3

2

Assembly.Load.net アセンブリをロードします。メモ帳はそんなものではありません。これは昔ながらのネイティブ Win32 アプリケーションです。あなたがやろうとしていることは ではできませんAssembly.Load

于 2013-09-17T11:17:22.517 に答える
2

あなたのアプローチは、管理された実行可能ファイルでのみ機能します。notepad.exe はネイティブの実行可能ファイルです。これを実行するには、Processクラスを使用します。

于 2013-09-17T11:17:23.837 に答える
1

1 つの解決策は、メモリの内容を一時ファイル ( Path.GetTempFileName) に書き込んでから、次のように実行することです。Process.Start()

于 2013-09-17T11:32:10.470 に答える