vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Batchdatei / Jar öffnen und den Output anzeigen. 
Autor: Preisser
Datum: 28.11.11 19:04

Hallo,

du kannst direkt vom GUI-Thread aus in den stdin-Kanal des Prozesses schreiben; das muss nicht vom gleichen Thread erledigt werden, der auch aus dem Prozess liest (geht eigentlich auch nicht, da der Thread ja schon mit Lesen beschäftigt ist und die meiste Zeit in der Lese-Schleife verharrt; bei asynchronen Lesevorgängen wird der Lesevorgang eh nochmal in einem zusätzlichen Thread als dem des Aufrufers ausgeführt). Es könnte höchstens passieren, dass dann der GUI-Thread beim Senden blockiert wird, wenn der Prozess die gesendeten Daten nicht abholt. In dem Fall könntest du asynchrone Schreibvorgänge verwenden, oder einen Thread starten, der aus einer BlockingCollection(T) in einer Schleife die zu schreibenden Strings holt, die vom GUI-Thread in diese eingefügt werden.

Welche genauen Teile fehlen denn? Evtl. musst du auch den stderr-Kanal auslesen, um Fehlermeldungen ebenfalls zu erhalten.

Ich verwendet eigentlich immer ungern die Async-Methoden, und erledige das Lesen manuell in einem Thread. Hier mal ein Beispiel für eine WinForm (konnte den Code wegen der 5 KB-Grenze nicht direkt posten), das die cmd.exe startet mit Parametern (z.B. bat-Datei), wobei die Form jeweils eine Textbox für den stdout- und stderr-Kanal sowie eine Textbox für den stdin-Kanal (zum Senden von Befehlen) enthält (erfordert Framework 4.0).

In die oberste Textbox kann man Parameter eingeben wie "/c C:\myBatfile.bat" um eine Batdatei zu starten, oder auch gar nichts, um die cmd.exe ohne Parameter zu starten. Beim Klick auf den unteren Sende-Button wird dann der in die Textbox links daneben eingegebene Text + Zeilenumbruch an den Prozess gesendet. Der Thread, der den stdOut-Kanal liest, wartet, bis der Prozess beendet wurde.
Sieht dann z.B. so aus:

(obere Textbox ist stdout, untere ist stderr)

Beitrag wurde zuletzt am 28.11.11 um 19:13:10 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Batchdatei / Jar öffnen und den Output anzeigen.3.299Kalerion27.11.11 00:34
Re: Batchdatei / Jar öffnen und den Output anzeigen.2.016ModeratorDaveS27.11.11 10:07
Re: Batchdatei / Jar öffnen und den Output anzeigen.1.963Kalerion28.11.11 11:39
Re: Batchdatei / Jar öffnen und den Output anzeigen.1.934Kalerion28.11.11 12:21
Re: Batchdatei / Jar öffnen und den Output anzeigen.2.037Preisser28.11.11 19:04
Re: Batchdatei / Jar öffnen und den Output anzeigen.2.040Kalerion29.11.11 10:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel