引数 "blah $ 00"(コードの一種)で "prog.exe"と呼ばれるプロセスを実行しようとしていますが、試してみると失敗します。アプリケーションはProcessStartInfoの引数でクラッシュします
string file = "blah $00";
string result = string.Empty;
ProcessStartInfo P = new ProcessStartInfo(@"""" + "prog.exe" + @"""");
P.Arguments = @"""" + file + @"""";
P.CreateNoWindow = true;
P.UseShellExecute = false;
P.RedirectStandardOutput = true;
Process.Start(P);
using (Process process = Process.Start(P))
{
using (StreamReader str = process.StandardOutput)
result = str.ReadToEnd();
}
MessageBox.Show(result);
このコードを実行すると、プログラムがクラッシュし、タスクマネージャを使用して強制終了します。
私のコードに何が間違っているのかよくわかりません(引数を正しく設定していませんか?)ので、助けてください。
なぜ二重引用符を使用していますか?コマンドラインの外観を見ましたか? –
'@" "" "' sを使わずに試しましたか? –
なぜprog.exeを引用符で囲む必要がありますか? –