Anexe um aplicativo de console em execução a uma nova instância do ConEmu

Anexe um aplicativo de console em execução a uma nova instância do ConEmu

Eu tenho um aplicativo de console já iniciado, no Windows XP. Quero anexá-lo a um emulador de console diferente, comoConsole2ouConEmu. Isso épossível com ConEmu, e funciona se eu executar o ConEmu, usar a entrada de menu "Anexar a" e selecionar meu aplicativo de console na lista.

Agora estou tentando automatizar isso. Quero poder focar a janela do aplicativo de console, pressionar uma tecla e anexá-la a uma nova instância do ConEmu. Eu tentei escrever umAutoHotKeymacro para anexar o aplicativo de console atualmente em foco quando pressiono Win+ A, mas não consigo descobrir como usá-lo ConEmuC. Aqui está minha tentativa:

#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

Tudo o que recebo é o seguinte pop-up de erro:

Attach to GUI was requested, but there is no console processes!

c:\opt\ConEmu-120704\ConEmu\ConEmuC.exe /ATTACH /PID=7104

No entanto, se eu usar a entrada de menu “Anexar a” na instância do ConEmu, o aplicativo de console será anexado. Preciso marcar a caixa de seleção “modo alternativo”introduzido na versão 120704, se isso for relevante.

Como uso ConEmuC(ou qualquer outro método) para anexar um aplicativo de console existente a uma nova instância do ConEmu? Melhor ainda, como faço para anexar uma instância existente (se eu quiser uma nova instância, posso simplesmente criá-la com antecedência)? E como especifico o modo alternativo?

Responder1

Tente o seguinte

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

Modo alternativo: /ATTACH /CONPID=<pid>.

Começar ConEmu.exe /detachedé desnecessário. A GUI será iniciada automaticamente, se não for encontrada.

Atualização. Build 120705. Se você deseja iniciar incondicionalmente uma nova janela do ConEmu, você pode adicionar /GHWND=NEWargumentos ConEmuC.

atualização 2. Por outro lado, pode ser que você não precise fazer Attachnada? HáTerminal padrãorecurso que permite executar o ConEmu automaticamente "em vez" do terminal padrão do Windows ao executar qualquer aplicativo de console.

informação relacionada