Leathl - So 06.09.09 22:16
Titel: C# - externer Prozess wartet auf Eingabe
Hallöle,
ich habe ein Problem mit einer spezifischen exe...
Wenn ich die exe normal über die Eingabeaufforderung mit Parametern starte, dann bekomme ich direkt einen Output.
Wenn ich das ganze nun aus meiner C# Applikation starte, dann kommt ein schwarzes Dos-Fenster und alles bleibt stehen.
Sobald ich irgendeine Taste drücke, bekomme ich den Output und kann ihn im Programm weiter verarbeiten.
Ich möchte das ganze im Endeffekt aber versteckt haben, doch wenn ich CreateNoWindow = true setze, dann bleibt das Programm stehen und wartet auf eine Eingabe, die niemals kommt...
Ich habe schon über den StandardInput versucht, das Programm zum weiterlaufen zu bewegen, doch es tut sich nichts, bis ich auf meiner Tastatur eine Taste drücke.
Gibt es irgendwie eine Möglichkeit, das ganze zum weitermachen zu bewegen. Ich bin ein wenig verwundert, da die exe normalerweise ihren Dienst ohne jegliche Eingabe verrichtet, mit anderen Programmen hatte ich auch noch nie Probleme aus C# heraus.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| ProcessStartInfo wdii = new ProcessStartInfo(@wdiexe, arg); wdii.RedirectStandardOutput = true; wdii.RedirectStandardError = true; wdii.RedirectStandardInput = true; wdii.UseShellExecute = false;
Process wdi = new Process(); wdi.StartInfo = wdii; wdi.Start();
string Output = wdi.StandardOutput.ReadToEnd();
wdi.Close(); |
Grüße
Kha - So 06.09.09 22:44
Leathl hat folgendes geschrieben : |
| Wenn ich das ganze nun aus meiner C# Applikation starte, dann kommt ein schwarzes Dos-Fenster und alles bleibt stehen. |
Und das passiert schon vor dem Output-Redirect? Sonst würde ich sagen, dass der Prozess zwar sofort zu schreiben loslegt, aber am Ende noch auf eine Eingabe wartet, während du auf das Ende des Prozesses wartest.