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

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

У меня уже запущено консольное приложение под Windows XP. Я хочу прикрепить его к другому эмулятору консоли, напримерКонсоль2или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? Еще лучше, как мне присоединить существующий экземпляр (если мне нужен новый экземпляр, я могу просто создать его заранее)? И как мне указать альтернативный режим?

решение1

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

#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 запустится автоматически, если не будет найден.

ОБНОВЛЕНИЕ. Сборка 120705. Если вы хотите безусловно запустить новое окно ConEmu, вы можете добавить /GHWND=NEWаргументы ConEmuC.

ОБНОВЛЕНИЕ 2. С другой стороны, может быть, вам Attachвообще не нужно этого делать?Терминал по умолчаниюфункция, которая позволяет автоматически запускать ConEmu «вместо» стандартного терминала Windows при запуске любого консольного приложения.

Связанный контент