2012-11-29 4 views
6

Wenn ich eine Win32 nicht-Konsole-Anwendung (AFAIK, die Konsole-ness einer Win32-Anwendung ist in die exe verbunden), startet es von der Konsole cmd.exe sofort an die Eingabeaufforderung zurück, die Anwendung "im Hintergrund "(oc kann es eine GUI der Art haben, oder sogar ein eigenes Konsolenfenster öffnen)Ist es möglich, eine nichtkonsolen Win32-Anwendung an die aufrufende cmd-Shell anzuhängen?

Ist es in der Nicht-Konsole ausführbar zu erkennen, dass es von cmd.exe gestartet wurde und es an den Start" anhängen " cmd.exe?

Und beachten Sie, dass es verschiedene Fragen/Antworten dazu gibt, aber es scheint, dass dieser genaue Ansatz nicht untersucht wurde. (Vielleicht ist es nicht so möglich.)

+1

Es funktioniert einfach nicht in der Praxis, Ihr Benutzer müsste "start/wait yourapp.exe" verwenden, um die Prozesse zu vermeiden, die über die Konsole kämpfen. Der einfache und niemals fehlschlagende Weg besteht darin, ein/Subsystem: Console-Build Ihrer App in den Pfad –

Antwort

5

Sie können dies sehr einfach tun. Übergeben Sie einfach ATTACH_PARENT_PROCESS an AttachConsole.

Ob das Endergebnis sinnvoll oder praktisch ist, kann ich nicht sagen. Beide Prozesse würden lesen und auf dieselbe Konsole schreiben, was ziemlich komisch werden könnte.

+0

zu setzen. Und das wäre sinnvoll? Der Prozess cmd.exe würde den anderen Prozess nicht kennen, oder? Beide Prozesse würden unabhängig von derselben Konsole schreiben und lesen? –

+0

Ich bin mir nicht sicher, dass es Sinn machen würde. Wie Sie sagen, können beide Prozesse die gleiche Konsole verwenden. –

+0

Und wenn jemand das Konsolenfenster geschlossen hat, dann wäre auch die Anwendung, die damit verbunden war, geschlossen. –

Verwandte Themen