
我在 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 將自動啟動。
UPD。 Build /GHWND=NEW
120705 ConEmuC
。
更新2。另一方面,也許您Attach
根本不需要做?有預設終端此功能可讓您在執行任何控制台應用程式時自動「而不是」標準 Windows 終端機執行 ConEmu。