2

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

1 ответ1

6

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

#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. Сборка 120705. Если вы хотите безоговорочно запустить новое окно ConEmu, вы можете добавить /GHWND=NEW к аргументам ConEmuC .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .