Guten Morgen zusammen,
ich bin zwar nicht neu in der Programmierung aber neu hier im Forum.
Entschuldigt, falls das hier schon existiert, aber ich weiß nicht genau, wie ich die Suchanfrage Formulieren kann.
Ich habe eine Klasse erstellt, die einen Process erstellt, der Robocopy aufruft.
Den Output leite ich weiter und möchte diesen in einer Text-Box auf meinem Formular ausgeben. Die Ausgabe klappt, aber erst, wenn der Prozess beendet ist.
Wie kann die Konsolen-Ausgabe zu Laufzeit des Prozesses ausgeben, so, wie es die Konsole selbst macht.
Hier ist der Code für meine Klasse:
public static string Backup(string _from, string _to, string _arguments)
{
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = Environment.GetFolderPath(Environment.SpecialFolder.Windows) + "\\System32\\Robocopy.exe",
Arguments = " " + _from + " " + _to + " " + _arguments,
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
StringBuilder Output = new StringBuilder("");
while (!proc.StandardOutput.EndOfStream)
{
Output.Append(proc.StandardOutput.ReadLine());
Output.AppendLine();
}
return Output.ToString();
}
In meinem Button-Click-Ereignis wird dann einfach:
t_ausgabe.text = tFunction.Backup("C:\\Test", "D:\\Test", " /E")
aufgerufen
Es wäre super, wenn jemand einen Tipp für mich hätte.
Gruß, CHS.
Hallo,
das Konsolenfenster zu kapern und in die eigene Anwendung zu integrieren ist gar keine schlechte Lösung, aber die Ausgabe lässt sich in einer TextBox etwas besser formatieren.
Also wenn ich das so verstehe, dann hätte ich das schwarze Konsolenfenster in meiner Applikation.
Eine weiße TextBox wäre natürlich schöner.
Gruß, CHS
Hallo CHS,
kannst du auch machen, wenn du willst. Den Grund, warum es bei dir hängt, hat Jamikus schon genannt. Die Umsetzung ist jedoch deine Aufgabe, (zu der in diesem spezillen Fall wegen [Hinweis] Wie poste ich richtig? Punkt 1.1 und dem entsprechenden Hinweis in der FAQ keine Nachfragen erlaubt sind. Denn in der FAQ sind alle Informationen, die du brauchst.
herbivore
OK, ich denke das deckt sich mit meiner Vermutung, dass ich den Kopiervorgang in einen separaten Thread auslagern muss.
Besten Dank.
CHS