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

2

Eu tenho um aplicativo de console já iniciado, no Windows XP. Eu quero anexá-lo a um emulador de console diferente, como Console2 ou ConEmu . Isso é possível com a ConEmu , e funciona se eu executar ConEmu, em seguida, usar sua entrada de menu "Anexar a" e selecione meu aplicativo de console na lista.

Agora estou tentando automatizar isso. Eu quero ser capaz de focar a janela do aplicativo de console, pressionar uma tecla e anexá-la a uma nova instância do ConEmu. Tentei escrever uma macro AutoHotKey para anexar o aplicativo de console atualmente em foco quando pressiono Win + Um , mas não consigo descobrir como usar 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 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" introduzida em versão 120704 , se for relevante.

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

    
por Gilles 05.07.2012 / 20:07

1 resposta

6

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> .

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

UPD . Criar 120705. Se você quiser iniciar incondicionalmente a nova janela ConEmu, poderá adicionar /GHWND=NEW a ConEmuC arguments.

UPD 2 . Por outro lado, pode ser que você não precise fazer Attach ? Existe o recurso Terminal padrão que permite executar o ConEmu automaticamente "em vez disso" do terminal padrão do Windows quando você executa qualquer aplicativo de console.

    
por 05.07.2012 / 20:42