Sunday 26 March 2017

C # Standardoutput Waitforexit

System. Diagnostics. ProcessStartInfoClass Assembly: System. dll-Namespace: System. Diagnostics-Zusammenfassung Gibt einen Satz von Werten an, die beim Starten eines Prozesses verwendet werden. C Syntax: public Siegelklasse ProcessStartInfo Bemerkungen ProcessStartInfo wird zusammen mit der Process-Komponente verwendet. Wenn Sie einen Prozess mit der Process-Klasse starten, haben Sie Zugriff auf Prozessinformationen zusätzlich zu denen, die beim Anhängen an einen laufenden Prozess verfügbar sind. Sie können die ProcessStartInfo-Klasse für eine größere Kontrolle über den Prozess verwenden, den Sie starten. Sie müssen mindestens die ProcessStartInfo. FileName-Eigenschaft festlegen, entweder manuell oder mit dem Konstruktor. Der Dateiname ist eine Anwendung oder ein Dokument. Hier wird ein Dokument als beliebiger Dateityp definiert, der eine offene oder eine standardmäßige Aktion zugeordnet hat. Sie können registrierte Dateitypen und ihre zugehörigen Anwendungen für den Computer über den Ordneroptionsdialog, der über das Betriebssystem verfügbar ist, anzeigen. Die Schaltfläche Erweitert führt zu einem Dialog, der anzeigt, ob eine offene Aktion zu einem bestimmten registrierten Dateityp gehört. Darüber hinaus können Sie andere Eigenschaften festlegen, die Aktionen definieren, die mit dieser Datei ausgeführt werden sollen. Sie können einen Wert angeben, der für den Typ der Eigenschaft ProcessStartInfo. FileName für die Eigenschaft System. Diagnostics. ProcessStartInfo. Verb (nicht unterstützt für die freigegebene Quell-CLI-Eigenschaft) spezifisch ist. Sie können z. B. für einen Dokumenttyp einen Ausdruck angeben. Darüber hinaus können Sie die Eigenschaften der ProcessStartInfo. Arguments-Eigenschaft als Befehlszeilenargumente angeben, die an die offene Methode der Dateien übergeben werden sollen. Wenn Sie beispielsweise eine Texteditoranwendung in der Eigenschaft ProcessStartInfo. FileName angeben, können Sie die Eigenschaft ProcessStartInfo. Arguments verwenden, um eine Textdatei anzugeben, die vom Editor geöffnet werden soll. Standard-Eingabe ist in der Regel die Tastatur, und Standard-Ausgabe und Fehler sind in der Regel der Monitor-Bildschirm. Sie können jedoch die ProcessStartInfo. RedirectStandardInput verwenden. ProcessStartInfo. RedirectStandardOutput und ProcessStartInfo. RedirectStandardError - Eigenschaften, um zu bewirken, dass der Prozess Eingaben von einer Datei oder einem anderen Gerät eingibt oder diese zurückgibt. Wenn Sie das Process. StandardInput verwenden. Process. StandardOutput. Oder Process. StandardError-Eigenschaften auf der Process-Komponente, müssen Sie zunächst den entsprechenden Wert auf die ProcessStartInfo-Eigenschaft setzen. Andernfalls wirft das System eine Ausnahme aus, wenn Sie den Stream lesen oder schreiben. Legen Sie ProcessStartInfo. UseShellExecute fest, um festzulegen, ob der Prozess mit der Betriebssystem-Shell gestartet werden soll. Sie können den Wert einer beliebigen ProcessStartInfo-Eigenschaft bis zu dem Zeitpunkt ändern, zu dem der Prozess gestartet wird. Nachdem Sie den Prozess gestartet haben, hat die Änderung dieser Werte keine Auswirkung. System. Diagnostics. ProcessStartInfo-Benutzerliste: Standardkonstruktor. Dieser Konstruktor wird von abgeleiteten Klassenkonstruktoren aufgerufen, um den Zustand in diesem Typ zu initialisieren. Initialisiert eine neue Instanz der ProcessStartInfo-Klasse, ohne einen Dateinamen anzugeben, mit dem der Prozess gestartet werden soll. Überladen:.ctor (string fileName) Initialisiert eine neue Instanz der ProcessStartInfo-Klasse und gibt einen Dateinamen wie eine Anwendung oder ein Dokument an, mit dem der Prozess gestartet werden soll. Überladen:.ctor (string fileName, string arguments) Initialisiert eine neue Instanz der ProcessStartInfo-Klasse und gibt einen Anwendungsdateinamen an, mit dem der Prozess gestartet werden soll, sowie einen Satz von Befehlszeilenargumenten, die an die Anwendung übergeben werden. Gest oder legt den Satz von Befehlszeilenargumenten fest, die beim Starten der Anwendung verwendet werden sollen. Ruft Suchpfade für Dateien, Verzeichnisse für temporäre Dateien, anwendungsspezifische Optionen und andere ähnliche Informationen ab. System. Diagnostics. ProcessStartInfo Mitgliedsdetails Überladen ctor 1 Zusammenfassung Initialisiert eine neue Instanz der ProcessStartInfo-Klasse, ohne einen Dateinamen anzugeben, mit dem der Prozess gestartet werden soll. Standardkonstruktor. Dieser Konstruktor wird von abgeleiteten Klassenkonstruktoren aufgerufen, um den Zustand in diesem Typ zu initialisieren. C Syntax: Bemerkungen Sie müssen mindestens die Eigenschaft ProcessStartInfo. FileName festlegen, bevor Sie den Prozess starten. Der Dateiname ist eine Anwendung oder ein Dokument. In diesem Fall wird ein Dokument als beliebiger Dateityp definiert, der eine offene oder eine standardmäßige Aktion zugeordnet hat. Sie können registrierte Dateitypen und ihre zugehörigen Anwendungen für den Computer über den Ordneroptionsdialog, der über das Betriebssystem verfügbar ist, anzeigen. Die Schaltfläche Erweitert führt zu einem Dialog, der anzeigt, ob eine offene Aktion zu einem bestimmten registrierten Dateityp gehört. Optional können Sie auch andere Eigenschaften festlegen, bevor Sie den Prozess starten. Die System. Diagnostics. ProcessStartInfo. Verb (nicht unterstützt auf der freigegebenen Quell-CLI) - Eigenschaft liefert Aktionen, wie z. B. Drucken, mit der Datei, die in der ProcessStartInfo. FileName-Eigenschaft angegeben wird. Die Eigenschaft ProcessStartInfo. Arguments bietet eine Möglichkeit, Befehlszeilenargumente an die Datei zu übergeben, wenn das System sie öffnet. Überladen ctor 2 Zusammenfassung Initialisiert eine neue Instanz der ProcessStartInfo-Klasse und gibt einen Dateinamen wie eine Anwendung oder ein Dokument an, mit dem der Prozess gestartet werden soll. C Syntax: Eine Anwendung oder ein Dokument, mit dem ein Prozess gestartet wird. Hinweise Der Dateiname ist eine Anwendung oder ein Dokument. In diesem Fall wird ein Dokument als beliebiger Dateityp definiert, der eine offene oder eine standardmäßige Aktion zugeordnet hat. Sie können registrierte Dateitypen und ihre zugehörigen Anwendungen für den Computer über den Ordneroptionsdialog, der über das Betriebssystem verfügbar ist, anzeigen. Die Schaltfläche Erweitert führt zu einem Dialog, der anzeigt, ob eine offene Aktion zu einem bestimmten registrierten Dateityp gehört. Sie können die ProcessStartInfo. FileName-Eigenschaft nach Aufruf dieses Konstruktors ändern, bis zu dem Zeitpunkt, zu dem der Prozess gestartet wird. Nachdem Sie den Prozess gestartet haben, hat die Änderung dieser Werte keine Auswirkung. Overloaded ctor 3 Zusammenfassung Initialisiert eine neue Instanz der ProcessStartInfo-Klasse und gibt einen Anwendungsdateinamen an, mit dem der Prozess gestartet werden soll, sowie einen Satz von Befehlszeilenargumenten, die an die Anwendung übergeben werden. C Syntax: Eine Anwendung, mit der ein Prozess gestartet wird. Befehlszeilenargumente, die an die Anwendung übergeben werden, wenn der Prozess gestartet wird. Hinweise Der Dateiname ist eine Anwendung oder ein Dokument. In diesem Fall wird ein Dokument als beliebiger Dateityp definiert, der eine offene oder eine standardmäßige Aktion zugeordnet hat. Sie können registrierte Dateitypen und ihre zugehörigen Anwendungen für den Computer über den Ordneroptionsdialog, der über das Betriebssystem verfügbar ist, anzeigen. Die Schaltfläche Erweitert führt zu einem Dialog, der anzeigt, ob eine offene Aktion zu einem bestimmten registrierten Dateityp gehört. Sie können die Eigenschaften ProcessStartInfo. FileName oder ProcessStartInfo. Arguments ändern, nachdem Sie diesen Konstruktor aufgerufen haben, bis zu dem Zeitpunkt, zu dem der Prozess gestartet wird. Nachdem Sie den Prozess gestartet haben, hat die Änderung dieser Werte keine Auswirkung. Eigenschaft: Argumente (read-write) Zusammenfassung Gest oder setzt den Satz von Befehlszeilenargumenten, die beim Starten der Anwendung verwendet werden sollen. C Syntax: Eigenschaft: EnvironmentVariables (schreibgeschützt) Zusammenfassung Ruft Suchpfade für Dateien, Verzeichnisse für temporäre Dateien, anwendungsspezifische Optionen und andere ähnliche Informationen ab. C-Syntax: Eigenschaft: RedirectStandardError (read-write) Zusammenfassung Ruft einen Wert ab, der angibt, ob die Fehlerausgabe des Prozesses in das Process Instances Process. StandardError-Member geschrieben wird, und ermöglicht es Ihnen, an ein anderes Ziel als den Standardfehlerstrom zu schreiben Bildschirm). Dient zum Schreiben von Fehlerdaten in eine Datei oder ein Protokoll. C Syntax: Bemerkungen Die Process-Komponente kommuniziert mit einem Child-Prozess über eine Pipe. Wenn ein untergeordneter Prozess genug Daten in die Pipe schreibt, um den Puffer zu füllen, wird das Kind blockieren, bis das übergeordnete Element die Daten aus der Pipe liest. Dies kann zu einem Deadlock führen, wenn Ihre Anwendung alle Ausgabe auf Standardfehler und Standardausgabe liest, z. B. unter Verwendung des folgenden C-Codes. In diesem Fall würden sowohl der übergeordnete als auch der untergeordnete Prozess blockiert, da die gefüllte Pipe den untergeordneten Prozess am Abschluss verhindert, während der übergeordnete Prozess unbegrenzt darauf wartet, dass der untergeordnete Prozess beendet wird. Dieses Problem kann durch Verschieben der ReadToEnd () vor dem WaitForExit () behoben werden. wie folgt. Ein ähnliches Problem tritt auf, wenn Sie sowohl Standardausgabe als auch Standardfehler umleiten und dann versuchen, beide zu lesen, zum Beispiel mit dem folgenden C-Code. Wenn der untergeordnete Prozess einen beliebigen Text in einen Standardfehler schreibt, wird er den Prozess blockieren, da der übergeordnete Prozess nicht vom Standardfehler lesen kann, bis er das Lesen von der Standardausgabe beendet hat. Der übergeordnete Prozess wird jedoch nicht von der Standardausgabe gelesen, bis der Prozess beendet ist. Eine empfohlene Lösung für diese Situation besteht darin, zwei Threads zu erstellen, damit Ihre Anwendung die Ausgabe jedes Streams auf einem separaten Thread lesen kann. Eigenschaft: RedirectStandardInput (read-write) Zusammenfassung Ruft einen Wert ab, der angibt, ob die Prozeßbefehleingabe aus dem Process Instances Process. StandardInput-Member gelesen wird, und ermöglicht es Ihnen, von einer anderen Quelle als dem Standard-Eingabestream (in der Regel die Tastatur) zu lesen. Dient zum Lesen von Daten aus einer Datei. C-Syntax: Eigenschaft: RedirectStandardOutput (read-write) Zusammenfassung Ruft einen Wert ab, der angibt, ob die Prozeßausgabe in das Process Instances Process. StandardOutput-Member geschrieben wird, und ermöglicht es Ihnen, an ein anderes Ziel als den Standardausgabestream (normalerweise den Monitor) zu schreiben Bildschirm). Dient zum Schreiben von Daten in eine Datei. C Syntax: Bemerkungen Die Process-Komponente kommuniziert mit einem Child-Prozess über eine Pipe. Wenn ein untergeordneter Prozess genug Daten in die Pipe schreibt, um den Puffer zu füllen, wird das Kind blockieren, bis das übergeordnete Element die Daten aus der Pipe liest. Dies kann zu einem Deadlock führen, wenn Ihre Anwendung alle Ausgabe auf Standardfehler und Standardausgabe liest, z. B. unter Verwendung des folgenden C-Codes. In diesem Fall würden sowohl der übergeordnete als auch der untergeordnete Prozess blockiert, da die gefüllte Pipe den untergeordneten Prozess am Abschluss verhindert, während der übergeordnete Prozess unbegrenzt darauf wartet, dass der untergeordnete Prozess beendet wird. Dieses Problem kann durch Verschieben der ReadToEnd () vor dem WaitForExit () behoben werden. wie folgt. Ein ähnliches Problem tritt auf, wenn Sie sowohl Standardausgabe als auch Standardfehler umleiten und dann versuchen, beide zu lesen, zum Beispiel mit dem folgenden C-Code. Wenn der untergeordnete Prozess einen beliebigen Text in einen Standardfehler schreibt, wird er den Prozess blockieren, da der übergeordnete Prozess nicht vom Standardfehler lesen kann, bis er das Lesen von der Standardausgabe beendet hat. Der übergeordnete Prozess wird jedoch nicht von der Standardausgabe gelesen, bis der Prozess beendet ist. Eine empfohlene Lösung für diese Situation besteht darin, zwei Threads zu erstellen, damit Ihre Anwendung die Ausgabe jedes Streams auf einem separaten Thread lesen kann. Eigenschaft: UseShellExecute (read-write) Zusammenfassung Ruft einen Wert ab, der angibt, ob die Betriebssystem-Shell verwendet werden soll, um den Prozess zu starten. C Syntax: Bemerkungen Wenn Sie diese Eigenschaft auf false setzen, können Sie Input-, Output - und Fehlerquellen umleiten. Wenn Sie die Betriebssystem-Shell zum Starten von Prozessen verwenden, können Sie jedes Dokument (das ist ein registrierter Dateityp, der einer ausführbaren Datei zugeordnet ist und die eine standardmäßige offene Aktion aufweist) starten und Operationen in der Datei wie dem Drucken ausführen Komponente. Wenn ProcessStartInfo. UseShellExecute false ist. Können Sie nur ausführbare Dateien mit der Process-Komponente starten. Eigenschaft: WorkingDirectory (read-write) Zusammenfassung Ruft das Anfangsverzeichnis für den zu startenden Prozess ab oder legt diesen fest. C Syntax: Bemerkungen Wenn das Verzeichnis bereits Bestandteil der Systempfadvariablen ist, ist es nicht nötig, die Verzeichnisposition in dieser Eigenschaft zu wiederholen. Elina: Danke für deine Antwort. Es gibt einige Notizen am unteren Rand dieses MSDN-Dokuments (msdn. microsoften-uslibraryhellip), die vor potenziellen Deadlocks warnen, wenn Sie das Ende der beiden umgeleiteten Stdout - und Stderr-Streams synchron lesen. Es ist schwer zu sagen, ob Ihre Lösung anfällig für dieses Problem ist. Auch scheint es, dass Sie die process39 stdoutstderr Ausgabe rechts zurück als Eingang senden. Warum. ) Ndash Matthew Piatt Dies ist eine moderne, aufwändige, Task Parallel Library (TPL) basierte Lösung für 4.5 und höher. Verwendungsbeispiel Implementierung beantwortet 5. Oktober 16 um 10:54 I Sache, dass dies einfach und besserer Ansatz (wir brauchen nicht Autoreset): beantwortet 14. Juni 12 um 14:29 Uhr Das stimmt, aber shouldn39t Sie. FileName Pfad tun quotggsci. exequot quot lt Obeycommand. txtquot, um Ihren Code zu zu vereinfachen Oder vielleicht etwas gleichbedeutend mit quotecho Befehl quotieren Pfad quotggsci. exequot, wenn Sie wirklich don39t eine separate obeycommand. txt-Datei verwenden möchten. Ndash Amit Naidu Ihre Lösung braucht nicht AutoResetEvent aber Sie Umfrage. Wenn Sie die Umfrage statt der Verwendung von Event (wenn sie verfügbar sind), dann sind Sie mit CPU ohne Grund und dass zeigen, dass Sie ein schlechter Programmierer sind. Ihre Lösung ist wirklich schlecht, wenn die anderen mit AutoResetEvent verglichen werden. (Aber ich habe dir nicht gegeben -1, weil du versucht hast zu helfen). Ndash Eric Ouellet 7. November um 18:38 Ich hatte das gleiche Problem, aber der Grund war anders. Es würde jedoch unter Windows 8, aber nicht unter Windows 7 auftreten. Die folgende Zeile scheint das Problem verursacht haben. Die Lösung war NICHT deaktivieren UseShellExecute. Ich erhielt nun ein Shell-Popup-Fenster, das unerwünscht ist, aber viel besser als das Programm wartet auf nichts Besonderes passieren. So fügte ich die folgende Arbeit-um für das hinzu: Jetzt das einzige, das mich stört, ist, warum dieses geschieht unter Windows 8 an erster Stelle. Ich habe versucht, eine Klasse, die Ihr Problem mit asynchronen Stream zu lösen, indem Sie in Konto Mark Byers, Rob, stevejay Antworten lösen würde. Dabei erkannte ich, dass es einen Fehler im Zusammenhang mit asynchrone Prozess-Ausgabe-Stream zu lesen. Sie können das nicht tun: Sie erhalten System. InvalidOperationException. StandardOut wurde nicht weitergeleitet oder der Prozess hat noch nicht begonnen. Dann müssen Sie die asynchrone Ausgabe starten, die nach dem Start des Prozesses gelesen wird. Machen Sie also eine Racebedingung, da der Ausgabestream Daten empfangen kann, bevor Sie ihn auf asynchron setzen. Dann könnten einige Leute sagen, dass Sie nur den Stream vor Ihnen lesen müssen Setzen Sie es auf asynchron. Aber das gleiche Problem tritt auf. Es wird eine Racebedingung zwischen dem synchronen Lesen und dem Setzen des Streams in den asynchronen Modus geben. Es gibt keine Möglichkeit, das sichere asynchrone Lesen eines Ausgabestreams eines Prozesses in der tatsächlichen Weise zu erledigen. Process und ProcessStartInfo wurde entworfen. Sie sind wahrscheinlich besser mit asynchronen Lesen wie von anderen Benutzern für Ihren Fall vorgeschlagen. Aber Sie sollten sich bewusst sein, dass Sie einige Informationen aufgrund Rasse Zustand verpassen könnte. Elina: Vielen Dank für Ihre Antwort. Es gibt einige Notizen am unteren Rand dieses MSDN-Dokuments (msdn. microsoften-uslibraryhellip), die vor potenziellen Deadlocks warnen, wenn Sie das Ende der beiden umgeleiteten Stdout - und Stderr-Streams synchron lesen. Es ist schwer zu sagen, ob Ihre Lösung anfällig für dieses Problem ist. Auch scheint es, dass Sie die process39 stdoutstderr Ausgabe rechts zurück als Eingang senden. Warum. ) Ndash Matthew Piatt Dies ist eine moderne, aufwändige, Task Parallel Library (TPL) basierte Lösung für 4.5 und höher. Verwendungsbeispiel Implementierung beantwortet 5. Oktober 16 um 10:54 I Sache, dass dies einfach und besserer Ansatz (wir brauchen nicht Autoreset): beantwortet 14. Juni 12 um 14:29 Uhr Das stimmt, aber shouldn39t Sie. FileName Pfad tun quotggsci. exequot quot lt Obeycommand. txtquot, um Ihren Code zu zu vereinfachen Oder vielleicht etwas gleichbedeutend mit quotecho Befehl quotieren Pfad quotggsci. exequot, wenn Sie wirklich don39t eine separate obeycommand. txt-Datei verwenden möchten. Ndash Amit Naidu Ihre Lösung braucht nicht AutoResetEvent aber Sie Umfrage. Wenn Sie die Umfrage statt der Verwendung von Event (wenn sie verfügbar sind), dann sind Sie mit CPU ohne Grund und dass zeigen, dass Sie ein schlechter Programmierer sind. Ihre Lösung ist wirklich schlecht, wenn die anderen mit AutoResetEvent verglichen werden. (Aber ich habe dir nicht gegeben -1, weil du versucht hast zu helfen). Ndash Eric Ouellet 7. November um 18:38 Ich hatte das gleiche Problem, aber der Grund war anders. Es würde jedoch unter Windows 8, aber nicht unter Windows 7 auftreten. Die folgende Zeile scheint das Problem verursacht haben. Die Lösung war NICHT deaktivieren UseShellExecute. Ich erhielt nun ein Shell-Popup-Fenster, das unerwünscht ist, aber viel besser als das Programm wartet auf nichts Besonderes passieren. So fügte ich die folgende Arbeit-um für das hinzu: Jetzt das einzige, das mich stört, ist, warum dieses geschieht unter Windows 8 an erster Stelle. Ich habe versucht, eine Klasse, die Ihr Problem mit asynchronen Stream zu lösen, indem Sie in Konto Mark Byers, Rob, stevejay Antworten lösen würde. Dabei erkannte ich, dass es einen Fehler im Zusammenhang mit asynchrone Prozess-Ausgabe-Stream zu lesen. Sie können das nicht tun: Sie erhalten System. InvalidOperationException. StandardOut wurde nicht weitergeleitet oder der Prozess hat noch nicht begonnen. Dann müssen Sie die asynchrone Ausgabe starten, die nach dem Start des Prozesses gelesen wird. Machen Sie also eine Racebedingung, da der Ausgabestream Daten empfangen kann, bevor Sie ihn auf asynchron setzen. Dann könnten einige Leute sagen, dass Sie nur den Stream vor Ihnen lesen müssen Setzen Sie es auf asynchron. Aber das gleiche Problem tritt auf. Es wird eine Racebedingung zwischen dem synchronen Lesen und dem Setzen des Streams in den asynchronen Modus geben. Es gibt keine Möglichkeit, das sichere asynchrone Lesen eines Ausgabestreams eines Prozesses in der tatsächlichen Weise zu erledigen. Process und ProcessStartInfo wurde entworfen. Sie sind wahrscheinlich besser mit asynchronen Lesen wie von anderen Benutzern für Ihren Fall vorgeschlagen. Aber Sie sollten sich bewusst sein, dass Sie durch einige Informationen vermissen könnte condition. System. Diagnostics. Process Rennen: redirect StandardInput, StandardOutput, Standarderror 82218217 InputAndOutputToEnd: eine praktische Möglichkeit, auf einem p weitergeleitet inputoutputerror zu verwenden. 82218217 ltparam name8221p8221gtDie p umzuleiten. Muss UseShellExecute auf false. ltparamgt setzen 82218217 ltparam name8221StandardInput8221gtDiese Zeichenfolge wird als Eingabe an das p gesendet. (Muss nichts, wenn nicht StartInfo. RedirectStandardInput sein) ltparamgt 82.218.217 ltparam name8221StandardOutput8221gtThe p8217s Ausgabe in diesem ByRef String gesammelt werden. (Muss nichts sein, wenn nicht StartInfo. RedirectStandardOutput) ltparamgt 82.218.217 ltparam name8221StandardError8221gtThe p8217s Fehler wird in diesem ByRef String gesammelt werden. (Muss nichts sein, wenn nicht StartInfo. RedirectStandardError) ltparamgt 82.218.217 ltremarksgtThis Funktion des Deadlock-Problem bei msdn. microsoften-uslibrarysystem. diagnostics. p.standardoutput. aspxltremarksgt ltRuntimepilerServices. Extension () gt Sub InputAndOutputToEnd (ByVal p Als Diagnostics. Process, ByVal erwähnt löst StandardInput As String ByRef StandardOutput Als String ByRef StandardError As String Wenn p nichts ist, dann Throw New ArgumentException (8220p muss nicht null8221 sein) 8216 Angenommen, p hat begonnen. Leider gibt es keine Möglichkeit zu überprüfen. Wenn p. StartInfo. UseShellExecute dann werfen New Argument (8220Set StartInfo. UseShellExecute zu false8221) If (p. StartInfo. RedirectStandardInput ltgt (StandardInput IsNot Nothing)) Dann werfen New Argument (8220Provide eine Nicht-Null-Eingabe nur, wenn StartInfo. RedirectStandardInput8221) Wenn (p. StartInfo. RedirectStandardOutput ltgt (StandardOutput IsNot Nothing)) Dann werfen New Argument (8220Provide eine nicht-null-Ausgang nur, wenn StartInfo. RedirectStandardOutput8221) If (p. StartInfo. RedirectStandardError ltgt (Standarderror IsNot Nothing)) Dann New Wurf Argument (8220Provide Ein Nicht-Null-Fehler nur wenn StartInfo. RedirectStandardError8221) Dim outputData As New InputAndOutputToEndData Dim errorData As New InputAndOutputToEndData If p. StartInfo. RedirectStandardOutput Then


No comments:

Post a Comment