vzdog
asked on
Sending a command to a host session and I need to copy the response as a .txt file.
I am using a macro to send a command to an Attachmate session.
I now need to capture the response of the command to a .txt file or excel, and save it automatically, replacing the existing file with the new.
Once working this process would need to be done nightly, but I assume I can use scheduler or other method.
I tried to record the macro using Capture Incoming Data but that does not work as the macro doesn't actually pick that up. Any ideas?
I now need to capture the response of the command to a .txt file or excel, and save it automatically, replacing the existing file with the new.
Once working this process would need to be done nightly, but I assume I can use scheduler or other method.
I tried to record the macro using Capture Incoming Data but that does not work as the macro doesn't actually pick that up. Any ideas?
how do you send the command ?
Shell.Execute , WSH.run ?
this will determine how the response is being received by the client and may allow some insight in how to capture.
Shell.Execute , WSH.run ?
this will determine how the response is being received by the client and may allow some insight in how to capture.
ASKER
This is the code I am using send send the commands.
Right now as you can see it was built to only "copy" from Excel and "paste" in to the Attacmate session with no concern from capturing the response back.
I now need to capture the hosts response and record it back on to the same Excel sheet, i another column ie; "C" so it stays associated to the command sent.
Right now as you can see it was built to only "copy" from Excel and "paste" in to the Attacmate session with no concern from capturing the response back.
I now need to capture the hosts response and record it back on to the same Excel sheet, i another column ie; "C" so it stays associated to the command sent.
' Global variable declarations
Global g_HostSettleTime%
Global g_szPassword$
Sub Main()
'--------------------------------------------------------------------------------
' Get the main system object
Dim Sessions As Object
Dim System As Object
Set System = CreateObject("EXTRA.System") ' Gets the system object
If (System is Nothing) Then
Msgbox "Could not create the EXTRA System object. Stopping macro playback."
STOP
End If
Set Sessions = System.Sessions
If (Sessions is Nothing) Then
Msgbox "Could not create the Sessions collection object. Stopping macro playback."
STOP
End If
'--------------------------------------------------------------------------------
' Set the default wait timeout value
g_HostSettleTime = 3000 ' milliseconds
OldSystemTimeout& = System.TimeoutValue
If (g_HostSettleTime > OldSystemTimeout) Then
System.TimeoutValue = g_HostSettleTime
End If
' Get the necessary Session Object
Dim Sess0 As Object
Set Sess0 = System.ActiveSession
If (Sess0 is Nothing) Then
Msgbox "Could not create the Session object. Stopping macro playback."
STOP
End If
If Not Sess0.Visible Then Sess0.Visible = TRUE
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
'--------------------------------------------------------------------------------
'Declare the Excel Object
Dim xlApp As Object, xlSheet As Object, MyRange As Object
Set xlApp = CreateObject("excel.application")
xlApp.Application.DisplayAlerts = False 'Turn off Warning Messages'
xlApp.Visible = True
xlApp.Workbooks.Open FileName:="D:\PMDaily\Fetch.xls"
Set xlSheet = xlApp.activesheet
Set MyRange = xlApp.activesheet.Range("A:A")
Dim Row As Long
With xlApp.ActiveSheet
Set MyRange = .Range("A2:A65536").Resize(xlApp.CountA(.Range("A2:A65536")))
End With
For Row = 1 To MyRange.Rows.Count
Sess0.Screen.PutString MyRange.Rows(Row).Value, 24, 6
Sess0.Screen.SendKeys "<ENTER>"
Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
Next Row
End Sub
Open in New Window Select All
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER