所以我知道如何使用wscript
启动控制台,发送和读取它,
但是在现有的控制台窗口中这样做呢?
(我将这些功能分开,因为我可以出于其他原因单独使用它们)
如何从我之前创建的控制台发送和接收线路?
Startconsole:
LaunchConsole(showconsole) ;display console based on user settings
DllCall("AttachConsole", "UInt", conWinPID)
return
LaunchConsole(hideconsole=0){
global
if(hideconsole){
hideconsole := "hide"
}
Run %ComSpec% /K cd /D c:\test, c:\test, %hideconsole%, conWinPID
winwait, ahk_pid %conWinPID%
winsettitle, ahk_pid %conWinPID%,,My Console Title
}
ConsoleCommand(whatcommand){
global myEdit
oExec := ComObjCreate("WScript.Shell").Exec(whatcommand)
While, !oExec.StdOut.AtEndOfStream
result := oExec.StdOut.ReadAll()
guicontrol,, myEdit, %result%
Return, result
}
CloseConsole:
DllCall("FreeConsole")
winclose, ahk_pid %conWinPID%
return
所以我想这样做:
gosub, StartConsole
ConsoleCommand("ping google.com -n 1")
ConsoleCommand("ping somewhereelse.com -n 1")
gosub, CloseConsole
控制台中的行应显示在我在LaunchConsole
中创建的编辑控件和控制台中,而不是我在wscripting中创建的那一行。我需要让wscript与我的控制台一起工作。
[更新]
我认为它实际上可能使用该控制台 - 只是我通过wscript发送的命令不会显示在控制台中,而且我在控制台中键入的任何内容都不会被反馈到脚本。