Ich habe eine WinForm-Anwendung mit ein paar Arbeiten zu tun und eine Ausgabe mit System.Console
Schreiben, Hier ist der Code:Wie laufen und Ausgabe von einer anderen Anwendung kommen C#
static int Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Console.WriteLine("Some String");
return 1;
}
Angenommen, wir nennen es SubApp.exe
In einem anderen Programm möchte ich dieses subApp.exe
ausführen und den Ausgang lesen, den es mit System.Diagnostics.Process
erstellt. Hier ist mein Code:
System.Diagnostics.Process p = System.Diagnostics.Process.Start("SubApp.exe", "Some Parameter");
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.Start();
p.WaitForExit();
string output = p.StandardOutput.ReadToEnd();
string error = p.StandardError.ReadToEnd();
int exitCode = p.ExitCode;
Aber leider beide output
und error
leer ist und noch schlimmer die exitCode
ist 0
. Was ist das Problem? Mache ich den Vorgang richtig?
Bitte fügen Sie Ihren tatsächlichen Code und nur weglassen, was Sie bezahlen Ich bin eine private Information. Es ist schwer, mit massiertem und nicht getestetem Code zu arbeiten. Zum Beispiel haben Sie 'System.Diagnosis'. Und genau über meinem Kopf, überprüfen Sie, ob Sie tatsächlich auf die richtige .exe zeigen (vielleicht versehentlich auf Debug statt auf Release oder umgekehrt). – TyCobb
Sie Code ist hier geschrieben 'System.Diagnostics.Process p = System.Diagnosis.Process.Start (" SubApp.exe "," Einige Parameter ");' Sie sollten 'System.Diagnostics.Process p = System.Diagnostics verwenden. Process.Start ("SubApp.exe", "Einige Parameter"); 'Sie haben' Diagnose' – Mostafiz
verwendet und nach der Reparatur funktioniert Ihr Code einwandfrei – Mostafiz