Friday, 30 June 2017

Befehlszeile C # Process Waitforexit


Das Problem Ein Mitarbeiter wollte ein Tool in C, die eine Befehlszeile ausführbare Datei beinhaltet zu bauen. Da eine API ihnen nicht zur Verfügung steht, bitten sie um eine schnelle Möglichkeit, eine Befehlszeile auszuführen, die mit der Option zum Analysieren über die Standardausgabe ausführbar ist. Die Lösung Meine Lösung für sie, die es ihnen ermöglichen: Starten Sie eine Befehlszeile mit Argumenten ausführbar Haben Sie die Option, Standardausgabe abzurufen Haben Sie die Option, Standard-Fehler abrufen Haben Sie die Option, Ausnahme auf Standardfehler zu werfen Forward irgendwelche Ausnahmen (Ex: executable tut Nicht vorhanden) Die Lösung ist eine einzige statische Funktion, die die System. Diagnostic. Process-Klasse zum Ausführen der Ausführung 1 verwendet. Der ausführbare Name und die Argumente werden als ein System. Diagnostic. ProcessStartInfo-Objekt 23 in die Process. StartInfo-Eigenschaft eingegeben Wollen die Process. StartInfo. UseShellExecute auf false setzen, da wir die Option sowohl Standardausgabe als auch Standardfehler abrufen möchten. Standardausgabe und Standardfehler können mit Process. StartInfo. RedirectStandardOutput und Process. StartInfo. RedirectStandardOutput umgeleitet werden, die wir Wird mit Flags56 ein - oder ausgeschaltet. Schließlich, wenn wir das Process. StandardOutput oder Process. StandardOutput lesen. Müssen wir die Methode aufrufen Process. WaitForExit 678. Die Implementierung The Exampleserpant 07 Aug 2009 K, der Code unten ist ein komplettes Chaos seit ive messing mit ihm zu versuchen und bekommen es, um die einfachsten Befehle in einer Eingabeaufforderung ausgeführt. Aber wenn Sie auf der Unterseite sehen Sie alle meine neuesten Versuche, um es funktionieren, wird der Rest des Codes zum größten Teil kommentiert. Ive schaute herum auf dem Internet, versuchte einige verschiedene Weisen, die Sie hier nicht sehen können, aber ich havent erhielt es noch. Was es tut Dieses Programm versucht, eine verschlüsselte Datei mithilfe einer Wordlist-Datei und truecrypt zu mounten. Ich habe mein Passwort vergessen und habe bereits einen benutzerdefinierten Wortgenerator erstellt, von dem ich glaube, dass er das Passwort generieren kann. Es kombiniert Arrays, IE ersten Teil könnte, dieses dieses oder dieses zweite Teil sein könnte, dieses dieses oder dieses und es geht eins, das Nehmen der Variablen, dann erzeugt alle möglichen Kombinationen. Ich brauche nur dieses, um es anzuwenden. Ich dachte, dies würde 20 Minuten dauern, um zu schreiben Ich kann nicht scheinen, herauszufinden, wie es funktioniert, auch nach Betrachten von Beispielen online. Herausgegeben von serpant, 07. August 2009 - 05:21 Uhr. Ich habe das Gefühl, ich wäre nicht in der Lage, den Pass und Argument als Option aus irgendeinem Grund zu senden. Vielen Dank. Ill versuchen Sie es jetzt. Im noch Kuriositäten, warum die Methode, die ich versuchte zu verwenden, würde nicht funktionieren. IE sendet String-String-Argument direkt zu process. start (). Aber hoffentlich funktioniert das, krank post zurück. Serpant 07 Aug 2009 Diese Methode startet das Programm im GUI-Modus, der alle mit den Variablen eingerichtet ist. Ich glaube, ich hätte so etwas früher ausprobieren können. Ich muss wirklich eine Konsole starten, dann führen Sie die Befehle darin. Weil wenn ich truecrypt laufen lasse, dann die Wahlen, die Sie im oben genannten Code sehen, wenn sein Recht und nichts tun, wenn sein falsch (in der Befehlseingabeaufforderung). Im GUI-Modus ist alles klickgetrieben. Ich möchte nicht nur das Programm starten, ich möchte zu steuern und führen Sie die Eingabeaufforderung aus meinem Programm. Hoffentlich erklärt dies, was ich mehr brauche. Danke für die Hilfe. Ich dachte, ich hatte es dort für eine Sekunde. Ich suchte nach Möglichkeiten, dies zu tun, und das Senden einer Zeichenfolge string process. start (), scheint eine gültige Option sein. Ich habe versucht, dieses Ich glaube, schon einmal Und das ist, was ive verbrachte mehr meiner Bemühungen versucht, herauszufinden, Parabola 07 Aug 2009 Ja, das Programm auf der Link-GUI, aber der Code, den ich Ihnen, wie Sie sehen können, ich modifizierte. Sie könnten leicht eine Konsole. Readline (), um Befehle von der Konsole zu erhalten. Wenn ich lief das Skript, lief es ohne GUI, lief nur das Programm, das es codiert wurde. Serpant 07 Aug 2009 Ich kopierte Ihren Code, der so ziemlich das gleiche wie einige Sachen war, die ich vorher versuchte. Es doesnt mount alles aber, wenn ich nur die Optionen direkt aus VisualStudios kopieren und führen Sie es in einer Eingabeaufforderung, es funktioniert. Ich bemerkte dies vor, das ist, warum ive versucht, herauszufinden, wie man stuff in CMD. exe laufen. Was ive gesehen sind ein paar Web-Sties, die sagen, dass Sie dies tun können Process. Start (CMD. exe, Kommandozeilen Zeug, die Sie hier ausführen möchten) seine scheint so einfach, aber seine nicht funktioniert Diese Foren sind nicht so lebendig wie sie verwendet werden , Eh Letztes Mal, wenn ich um Hilfe bei meinem RPG-Spiel gebeten. Es gab eine Menge Leute mit Ideen. Vielen Dank für den Versuch Parabel. Im gonna versuchen, es ein wenig später herauszufinden, dann könnte ich versuchen, ein anderes Forum, es war nur mich und Sie in diesem für über einen Tag. Id wie ein aktiver, wissen Sie alle Parabola 08 Aug 2009 Ich glaube immer noch nicht, Sie sind ganz bekommen es. Process. Start (CMD. exe, Befehlszeile Zeug, die Sie hier ausführen möchten) Sie sollten versuchen, CMD. exe mit args auszuführen. Tatsächlich führen Sie Ihre Linie statt. Zum Beispiel, denken Sie nicht an es-cmd ist nur Befehlszeile. Es ist nicht das eigentliche Programm, das Sie ausführen wollen, ist es Also warum versuchen, ein Programm aufrufen, dann in die Programme Argumente, rufen Sie ein anderes, mit mehr Argumente für die zweite Sein ineffizient. Rufen Sie einfach Ihr Programm direkt in, wie folgt: serpant 08 Aug 2009 Was ich sagte, ist, dass ich Ihren Code versucht, und es funktioniert nicht. Es startet nur das Programm und versucht nicht, Datei zu montieren. Ive versucht mehrmals. Im nicht sicher, warum es nicht funktioniert. Wenn ich truecrypt in einer Befehlszeile mit den gleichen Optionen ausführen wollte, dann es die Datei mount. Das ist, warum im versuchen, es zu tun, wie ich bin. Ihr Weg wäre gut, wenn es funktionierte. Nicht sicher, ob es wäre, dass viel effizienter. Sobald truecypt ausgeführt wird, wird es von der Befehlszeile aus nicht gestartet, das Programm erneut zu starten. So tun Sie es Ihren Weg, wenn es funktionierte, würde truecrypt ein paar hundert Mal würde es nicht starten Dieser Code wird gonna Teil einer Schleife mit dem Passwort-Abschnitt jedes Mal ändern.

No comments:

Post a Comment