'Method 1 - Use Description Object
'Open cmd.exe
SystemUtil.Run "cmd.exe", "", "C:\Windows\system32", "open"
Dim oDesc
set oDesc = Description.Create()
oDesc("nativeclass").value = "ConsoleWindowClass"
Dim cilObject : Set cilObject = Desktop.ChildObjects(oDesc)
'Error will occur at below line, seems the command windows opend by SystemUtil is not recognized as a child object of the desktop,
'If you have a previous opened command window, that one will be got to do following steps
Dim objCmdWindow : Set objCmdWindow = cilObject(0)
Dim text : text = objCmdWindow.GetROProperty("title")
print text
objCmdWindow.Type "ipconfig"
objCmdWindow.Type micReturn
text = objCmdWindow.GetVisibleText
print text
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Method 2 - Use Descriptive Programming
'This method is more easier, and no error as method 1
'Open cmd.exe
SystemUtil.Run "cmd.exe", "", "C:\Windows\system32", "open"
Dim objCmdWindow : Set objCmdWindow = Window("nativeclass:=ConsoleWindowClass")
Dim text : text = objCmdWindow.GetROProperty("title")
print text
objCmdWindow.Type "ipconfig"
objCmdWindow.Type micReturn
text = objCmdWindow.GetVisibleText
print text
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Method 3 - Use Wscript.Shell Object
'To resolve large commands with large responses
Dim wShell
Set wShell = CreateObject("WScript.Shell")
Set exec = wShell.Exec("ipconfig")
print exec.StdOut.ReadAll
Note:
The Exec method returns a WshScriptExec object, which provides status and error information about a script to run with Exec along with access to the StdIn, stdOut, ans StdErr channels.