-3

Ich weiß, das sieht aus wie viele andere Fragen da draußen, aber ich sah sie alle für Stunden und fand nie die richtige Antwort, die ich brauchte, also hör mich aus:Interaktiven Prozess in bereits laufenden Konsole-Anwendung ausführen, ohne ein neues Fenster zu öffnen

Dies ist für eine .NET C# -Konsolenanwendung. Innerhalb davon wollte ich eine Windows-Programmdatei unter Verwendung von Process.Start, aber aufrufen, ohne dass es beim Start ein neues Konsolenfenster öffnete. Ich wollte auch, dass die ausführbare Datei in der Lage ist, auf die Konsole auszugeben und normal auf Benutzereingaben zu reagieren.

Wie machst du das? Set ProcessStartInfo.CreateNoWindow oder ProcessStartInfo.WindowStyle? Versuchen Sie, die Eingabe-/Ausgabeumleitung stundenlang durchzuführen?


EDIT: smh ... dies unterscheidet sich von den „möglichen Duplikate“ da draußen, weil:

  • Dies ist für eine Konsolenanwendung, die will ein Windows-Befehl nahtlos laufen innerhalb selbst, als ob der Befehl Teil der Konsolenanwendung selbst wäre. Beispiel: Erstellen Sie eine neue C# -Konsolenanwendung, und führen Sie sie unter Windows copy aus.
  • Außerdem brauchte ich den Benutzer interact mit dem laufenden Befehl zu können (zB wenn copy ob fragt überschrieben ich den Benutzer beantworten wollte), so das Fenster wie in this versteckt oder this möglichen Antworten ist ein Nein-Nein.
  • Ich wollte, wie die einzelneUseShellExecute Eigenschaft löst das Problem betonen, ohne den irreführenden Flaum (z.B. etwa I/O-Umleitung) in Antworten wie this oder this, die wieder, mich Stunden verschwenden gemacht.
+0

Nizza ... downvotes ohne Kommentar oder Erwägung, wie dies verhindern könnte, dass jemand Stunden weg verschwendet ... * smh *: - | – Paul

+1

Ich habe nicht downvote, aber ich bin ein wenig verwirrt, wie das von [this] unterscheidet (https://stackoverflow.com/questions/836427/how-to-run-ac-sharp-console-application- mit-der-Konsole-versteckt). Sagen Sie, dass Sie die Konsolenanwendung * A * ausführen und die Konsolenanwendung * B * stattdessen "nahtlos" ausführen möchten (dh, es sieht so aus, als ob Anwendung * B * nur "aufhebt, wo * A * aufgehört hat")) – EJoshuaS

+1

Mögliches Duplikat von [So führen Sie eine C# -Konsolenanwendung mit versteckter Konsole aus] (https://stackoverflow.com/questions/836427/how-to-run-ac-sharp-console-application-with-the-console- versteckt) – EJoshuaS

Antwort

-1

Einfach: ProcessStartInfo.UseShellExecute=false. Das ist es! (Ich weiß, ich konnte es selbst nicht glauben).

Nach stundenlangem Versuchen aller möglichen Dinge, hat das für mich funktioniert - ohne die Einstellung CreateNoWindow=true! Auch am Ende von allem, fand ich this MSDN post, die bestätigt, was ich herausgefunden habe. Stelle dir das vor!

Verwandte Themen