Присоедините запущенное консольное приложение к новому экземпляру ConEmu

5277
Gilles

У меня уже запущено консольное приложение под Windows XP. Я хочу подключить его к другому консольному эмулятору, такому как Console2 или ConEmu . Это возможно с ConEmu, и это работает, если я запускаю ConEmu, затем использую пункт меню «Присоединить к» и выбираю мое консольное приложение в списке.

Я сейчас пытаюсь автоматизировать это. Я хочу иметь возможность сфокусировать окно консольного приложения, нажать клавишу и привязать ее к новому экземпляру ConEmu. Я пытался написать макрос AutoHotKey, чтобы присоединить текущее фокусированное консольное приложение, когда я нажимаюWin + A, но я не могу понять, как его использовать ConEmuC. Вот моя попытка:

#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 

Все я получаю следующее сообщение об ошибке:

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

Тем не менее, если я использую пункт меню «Присоединить к» в экземпляре ConEmu, консольное приложение присоединяется. Мне нужно поставить галочку «альтернативный режим», введенный в версии 120704, если это актуально.

Как мне использовать ConEmuC(или любой другой метод), чтобы присоединить существующее консольное приложение к новому экземпляру ConEmu? Еще лучше, как мне прикрепить существующий экземпляр (если я хочу новый экземпляр, я могу просто создать его заранее)? И как мне указать альтернативный режим?

2

1 ответ на вопрос

6
Maximus

Попробуйте следующее

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

Альтернативный режим: /ATTACH /CONPID=<pid>.

Начинать ConEmu.exe /detachedне нужно. GUI будет запущен автоматически, если не найден.

UPD . Build 120705. Если вы хотите безоговорочно запустить новое окно ConEmu, вы можете добавить /GHWND=NEWк ConEmuCаргументам.

UPD 2 . С другой стороны, может быть, вам не нужно делать Attachвообще? Существует функция терминала по умолчанию, которая позволяет автоматически запускать ConEmu вместо стандартного терминала Windows при запуске любого консольного приложения.

Ах, `/ CONPID`, хорошо. Есть ли способ указать, что я хочу новое окно ConEmu, а не новую вкладку в существующем окне? Gilles 11 лет назад 0
Если вы хотите новое окно ConEmu, запустите `ConEmu.exe / detached` и немного подождите, пока окно GUI будет создано. В текущей версии нет специального переключателя в `ConEmuC` для этого случая. Maximus 11 лет назад 0