1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
899
899
EMPFEHLEN
-
02.04.12 10:17 #1
Rookie
- Registriert seit
- Apr 2012
- Beiträge
- 7
Guten Morgen zusammen,
ich bin auf der suche nach einer Möglichkeit, die Ausgabe einer .batch in einer Windows Forms Anwendung anzeigen zu lassen. Zudem soll die Möglichkeit bestehen über die Button´s Befehle an die .batch zu senden.
Das ganze soll wie folgt aussehen.
![[VB.Net] Batch in Windows Forms einbinden-unbenannt.png](http://www.tutorials.de/attachments/net-windows-forms/59891d1333354201t-unbenannt.png)
Dort wo der große Panel ist, soll der Inhalt der .batch Datei nachher zu sehen sein.
Dort wo die beiden kleinen Panel derzeit sind will ich später die CPU last und den RAM verbrauch der .batch anzeigen lassen.
Ist das möglich so wie ich mir das vorstelle?
Falls ja, wie setze ich das am besten um.
Welche Elemente muss ich verwenden, welchen Code muss ich wo benutzen?
Würde mich freuen wenn mir das einer gut verdaulich präsentieren könnte
Danke schon einmal im vorraus für euer bemühen.
-
02.04.12 13:10 #2
-
02.04.12 15:23 #3
Rookie
- Registriert seit
- Apr 2012
- Beiträge
- 7
Hmm so ganz scheind es momentan nicht zu gehen.
Er schreibt nur die erste zeile in die ListBox
Dannach bleibt er einfach stehen.
Normal sollte eine Auflistung stattfinden was die .jar datei die mit der .batch aufgerufen wird grade macht.
So sieht es derzeit aus
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Dim args() As String = Environment.GetCommandLineArgs() ' This is the code for the base process Dim myProcess As New Process() ' Start a new instance of this program but specify the 'spawned' version. Dim myProcessStartInfo As New ProcessStartInfo(args(0), "spawn") myProcessStartInfo.FileName = "Server-1-Starten.bat" myProcessStartInfo.UseShellExecute = False myProcessStartInfo.RedirectStandardOutput = True myProcess.StartInfo = myProcessStartInfo myProcess.Start() Dim myStreamReader As StreamReader = myProcess.StandardOutput ' Read the standard output of the spawned process. Dim myString As String = myStreamReader.ReadLine() LstA.Items.Add(myString) myProcess.WaitForExit() myProcess.Close
Irgentwas mach ich wohl falsch... Kann mir da einer behilflich sein?
-
03.04.12 13:21 #4
Du ließt auch nur die erste Zeile. Du musst natürlich alle Zeilen lesen... Genügt es, wenn die Ausgabe erst nach Beendigung des Batch-Jobs erscheint oder soll die Ausgabe zeitlich synchron mit dem Batch-Job ausgegeben werden?
-
03.04.12 13:50 #5
Rookie
- Registriert seit
- Apr 2012
- Beiträge
- 7
Muss zeitlich synchron mit dem Batch-Job sein.
Also der Batch ruft eine .jar auf diese .jar gibt an den Batch-Job eine ausgabe weiter die die Console anzeigt.
Normal sieht die Console so aus:
![[VB.Net] Batch in Windows Forms einbinden-1.png](http://www.tutorials.de/attachments/net-windows-forms/59899d1333453689t-1.png)
Dort wird dann der Fortschritt ausgegeben. Das sollte also schon synchron sein.
Dann noch folgendes:
![[VB.Net] Batch in Windows Forms einbinden-2.png](http://www.tutorials.de/attachments/net-windows-forms/59900d1333453763t-2.png)
Unswar kann man wenn die spawn area fertig geladen hat Befehle eingeben z.B. op paradox
Das wollte ich gern auch über die Windows Forms machen können.
Möchte also eine Consolen Abstraktion erschaffen
-
03.04.12 16:04 #6
Dann musst du in zeitlichen Abständen den OutputStream auf neuen Text überprüfen und dann ggf. ausgeben.
-
03.04.12 16:37 #7
Rookie
- Registriert seit
- Apr 2012
- Beiträge
- 7
Wie mache ich das am besten?
Hast du da ein beispiel?
-
17.04.12 17:21 #8
Rookie
- Registriert seit
- Apr 2012
- Beiträge
- 7
Habe mich jetzt einige male daran versucht doch irgentwas mache ich immer Falsch. Er gibt mir soabld ich eine schleife einbaue garnichtsmehr aus und rennt sich zu tode... Kann mir vieleicht einer ein Beispiel geben?
-
18.04.12 07:46 #9
Mitglied Diamant
- Registriert seit
- Jul 2005
- Ort
- München
- Beiträge
- 2.495
Hallo ParadoxMSL,
mit einer Schleife wird's recht umständlich, weil die in einem eigenen Thread laufen müsste, um den Hauptprozess nicht zu blockieren.
Nutze doch die Möglichenkeiten der Process-Klasse, und lasse dich per Event benachrichtigen, wenn etwas in die Standardausgabe geschrieben wurde. Das Ereignis heißt OutputDataReceived und ein Beispiel findest du in der MSDN-Dokumentation zu diesem Ereignis: http://msdn.microsoft.com/de-de/libr...areceived.aspx
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
[C++ Windows Forms VS 2010 Express] Wie kann ich zwei Forms miteinander vernetzen
Von YannikTold im Forum .NET Windows FormsAntworten: 20Letzter Beitrag: 06.09.10, 14:31 -
[c#]windows forms tut?
Von davfighter im Forum .NET Windows FormsAntworten: 9Letzter Beitrag: 14.11.07, 12:07 -
Windows Forms
Von m-a-g im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 25.09.07, 11:34 -
C# : Windows Forms
Von MSuter im Forum .NET ArchivAntworten: 3Letzter Beitrag: 23.09.03, 10:02 -
[C++] & Windows Forms
Von Mr.Undertaker im Forum C/C++Antworten: 2Letzter Beitrag: 24.10.02, 20:53




Zitieren
Login