Hängen Sie eine laufende Konsolenanwendung an eine neue ConEmu-Instanz an

5470
Gilles

Ich habe eine bereits gestartete Konsolenanwendung unter Windows XP. Ich möchte es an einen anderen Konsolenemulator wie Console2 oder ConEmu anschließen . Dies ist mit ConEmu möglich und funktioniert, wenn ich ConEmu starte, dann den Menüeintrag "Anhängen an" verwende und meine Konsolenanwendung in der Liste auswähle.

Ich versuche jetzt, dies zu automatisieren. Ich möchte in der Lage sein, das Anwendungsfenster der Konsole zu fokussieren, eine Taste zu drücken und es an eine neue Instanz von ConEmu anhängen zu lassen. Ich habe versucht, ein AutoHotKey- Makro zu schreiben, um die derzeit fokussierte Konsolenanwendung anzufügen, wenn ich Win+ drücke A, aber ich kann nicht herausfinden, wie ich es verwenden soll ConEmuC. Hier ist mein Versuch:

#IfWinActive, ahk_class ConsoleWindowClass #a:: WinGet, app_pid, PID Run c:\opt\ConEmu-120704\ConEmu.exe /detached,, , conemu_pid Run c:\opt\ConEmu-120704\ConEmu\ConEmuC.exe /ATTACH /PID=%app_pid% Return 

Alle bekomme ich die folgende Fehleranzeige:

Attach to GUI was requested, but there is no console processes!  c:\opt\ConEmu-120704\ConEmu\ConEmuC.exe /ATTACH /PID=7104 

Wenn ich jedoch den Menüeintrag "Anhängen an" in der ConEmu-Instanz verwende, wird die Konsolenanwendung angehängt. Ich muss das Kontrollkästchen "Alternativmodus" in Version 120704 aktivieren, wenn dies relevant ist.

Wie verwende ich ConEmuC(oder eine andere Methode), um eine vorhandene Konsolenanwendung an eine neue ConEmu-Instanz anzuhängen? Noch besser, wie füge ich eine vorhandene Instanz hinzu (wenn ich eine neue Instanz haben möchte, kann ich sie vorher erstellen)? Und wie kann ich den alternativen Modus angeben?

2

1 Antwort auf die Frage

6
Maximus

Versuche Folgendes

#IfWinActive, ahk_class ConsoleWindowClass #a:: WinGet, app_pid, PID Run c:\opt\ConEmu-120704\ConEmu\ConEmuC.exe /ATTACH /CONPID=%app_pid% Return 

Alternativer Modus: /ATTACH /CONPID=<pid>.

Starten ConEmu.exe /detachedist unnötig. Die GUI wird automatisch gestartet, wenn sie nicht gefunden wird.

UPD . Bauen 120705. Wenn Sie unbedingt wollen neue ConEmu Fenster starten, die Sie hinzufügen können, /GHWND=NEWum ConEmuCArgumente.

UPD 2 . Andererseits müssen Sie vielleicht gar nichts tun Attach? Es gibt eine Standard-Terminal- Funktion, mit der Sie ConEmu automatisch anstelle des Standard-Windows-Terminals ausführen können, wenn Sie eine Konsolenanwendung ausführen.

Ah, `/ CONPID`, ok. Gibt es eine Möglichkeit, anzugeben, dass ich ein neues ConEmu-Fenster und keine neue Registerkarte in einem vorhandenen Fenster haben möchte? Gilles vor 11 Jahren 0
Wenn Sie ein neues ConEmu-Fenster wünschen, führen Sie `ConEmu.exe / detached` aus und warten Sie etwas, während das GUI-Fenster erstellt wird. In der aktuellen Version gibt es für diesen Fall keinen speziellen Schalter in `ConEmuC`. Maximus vor 11 Jahren 0