将正在运行的控制台应用程序附加到新的 ConEmu 实例

Gil*_*il' 3 windows console conemu

我有一个已经启动的控制台应用程序,在 Windows XP 下。我想将它附加到不同的控制台模拟器,例如Console2ConEmu。这对 ConEmu可能的,如果我运行 ConEmu 然后使用它的“附加到”菜单条目并在列表中选择我的控制台应用程序,它就可以工作。

我现在正在尝试自动执行此操作。我希望能够聚焦控制台应用程序窗口,按下一个键,并将其附加到 ConEmu 的新实例。当我按下+ 时,我尝试编写一个AutoHotKey宏来附加当前聚焦的控制台应用程序,但我不知道如何使用. 这是我的尝试:WinAConEmuC

#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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误弹出窗口:

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

c:\opt\ConEmu-120704\ConEmu\ConEmuC.exe /ATTACH /PID=7104
Run Code Online (Sandbox Code Playgroud)

然而,如果我在 ConEmu 实例中使用“附加到”菜单项,控制台应用程序将被附加。如果相关,我需要勾选版本 120704 中引入的“替代模式”复选框。

如何使用ConEmuC(或任何其他方法)将现有控制台应用程序附加到新的 ConEmu 实例?更好的是,我如何附加现有实例(如果我想要一个新实例,我可以事先创建它)?以及如何指定替代模式?

Max*_*mus 7

尝试以下

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

替代模式:/ATTACH /CONPID=<pid>.

启动ConEmu.exe /detached是不必要的。如果未找到,GUI 将自动启动。

更新。构建120705.如果你要无条件地开始新的ConEmu窗口,您可以添加/GHWND=NEWConEmuC参数。

更新 2。另一方面,您可能根本不需要这样做Attach吗?有默认的终端功能,它可以让你自动运行ConEmu“而不是”终端的标准窗口,当你运行任何控制台应用程序。