Entwickler-Ecke
IO, XML und Registry - Batch per ClickEvent starten und CMD in TextBox auslesen
Kobas17 - So 21.05.17 13:23
Titel: Batch per ClickEvent starten und CMD in TextBox auslesen
Liebes Forum
Ich habe folgendes Problem. Ich löse einen Prozess aus der eine Batch Datei startet, die Funktionalität des Batches ist gegeben.
Sobald ich das CMD Fenster schließe erscheint auch der Inhalt in meiner Textbox. Ich möchte gerne erreichen das der Inhalt direkt
in die Textbox geschrieben wird ohne das ich das CMD Fester schließen muss, da der Batch länger läuft und viele Logs ausgibt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| private void StartButton_Click(object sender, EventArgs e) { Process Send = new Process(); Send.StartInfo = new ProcessStartInfo("C:\\Users\\Ich\\Desktop\\copy.bat"); Send.StartInfo.CreateNoWindow = false; Send.StartInfo.UseShellExecute = false; Send.StartInfo.RedirectStandardError = true; Send.StartInfo.RedirectStandardOutput = true; Send.StartInfo.RedirectStandardOutput = true;
Send.Start(); StreamReader mySr = Send.StandardOutput; textBox1.Text = mySr.ReadToEnd(); } |
Danke für euere Unterstützung
Moderiert von Christian S.: Topic aus Alle Sprachen - Alle Plattformen verschoben am So 21.05.2017 um 16:25
Kobas17 - So 21.05.17 19:51
Hallo Th69
Das verstehe ich nicht ganz , ganz du das für einen Anfänger übersetzen ?
LG
Delete - So 21.05.17 22:09
- Nachträglich durch die Entwickler-Ecke gelöscht -
Kobas17 - Mo 22.05.17 09:30
Hallo Th69
leider komme ich mit deinem Lösungsvorschlag nicht weiter , ich erhalte folgende Fehlermeldung.
Zitat: |
Fehler CS0079 Das Process.OutputDataReceived-Ereignis kann nur links von += oder -= verwendet werden. WindowsFormsApplication5 |
Beste Grüsse
Moderiert von Th69: Quote-Tag hinzugefügt
Kobas17 - Mo 22.05.17 10:59
Hallo Ralf Jansen
anbei mein Codbeispiel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| private void bunifuThinButton21_Click(object sender, EventArgs e) { Process Send = new Process(); Send.StartInfo = new ProcessStartInfo("C:\\Users\\Ich\\copy.bat"); Send.StartInfo.CreateNoWindow = false; Send.StartInfo.UseShellExecute = false; Send.StartInfo.RedirectStandardError = true; Send.StartInfo.RedirectStandardOutput = true; Send.StartInfo.RedirectStandardOutput = true; Send.OutputDataReceived += BeginOutputReadLine; Send.Start(); StreamReader mySr = Send.StandardOutput; textBox1.Text = mySr.ReadToEnd();
string stdOutput = Send.StandardOutput.ReadToEnd(); string stdError = Send.StandardError.ReadToEnd(); } |
Ralf Jansen - Mo 22.05.17 11:26
Der Code sieht jetzt nicht so aus als hätte der was mit deiner Fehlermeldung zu tun.
Du hast zumindest vergessen Send.BeginOutputReadLine(); aufzurufen. Schau dir am besten das Codebeispiel in der Doku an.
Kobas17 - Di 23.05.17 09:19
Hallo Herr Jansen
ich bekomme das leider anhand des Beispielscodes nicht zum laufen. kannst du mir evtl ein deutschsprachiges Tutorial empfehlen?
Vor allem eines wo erklärt wird was genau diese send.BeginOutputReadLine() auslöst und wie es verwendet wird.
Dank
Delete - Di 23.05.17 10:13
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!