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

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

我有一个已启动的控制台应用程序,在 Windows XP 下。我想将其附加到不同的控制台模拟器,例如控制台2或者康埃穆。 这是使用 ConEmu 即可,如果我运行 ConEmu 然后使用它的“附加到”菜单项并在列表中选择我的控制台应用程序,它就可以工作。

我现在正在尝试实现自动化。我希望能够聚焦控制台应用程序窗口,按下一个键,并将其附加到 ConEmu 的新实例。我尝试编写一个自动热键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 将自动启动。

更新型多巴胺. Build 120705. 如果您想无条件启动新的 ConEmu 窗口,您可以添加/GHWND=NEW参数ConEmuC

更新 2。另一方面,也许你Attach根本不需要做?有默认终端该功能允许您在运行任何控制台应用程序时自动运行 ConEmu“而不是”标准 Windows 终端。

相关内容