We help IT Professionals succeed at work.

VBS Script Modification Pt5

cpatte7372
cpatte7372 asked
on
Hello Experts,

The following script fails when it gets to the line 'crt.session.log True'. Its being used with an application called SecureCRT and its run on a number of tabs. Basically, the script will work fine on the first tab, but when it gets to another tab I get the error message CRT Scripting Runtime error, and then it says Logging already enabled.

I think its because script doesn't recognise that it should start afresh on a new tab.

I wonder if you could assist?

# $language = "VBScript"
# $interface = "1.0"
' SendToAll.vbs

Sub Main()
   
    if Not crt.Session.Connected then
        szSession = crt.Dialog.Prompt("Enter session:", "", "", False)
        if szSession = "" then exit sub
   
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
        crt.Session.ConnectInTab("/S " & szSession)
    end if
   
    arrCommands = Array("end", "term len 0")

    ' Send commands to all tabs
    ' Connect to each tab in order from left to right, issue all commands, and
    ' then disconnect...
    For nIndex = 1 to crt.GetTabCount
        Set objCurrentTab = crt.GetTab(nIndex)
        objCurrentTab.Activate
     
           
        If objCurrentTab.Session.Connected = True Then
            crt.Session.Log True
            For Each strCommand In arrCommands
                crt.Sleep 500
                objCurrentTab.Screen.Send strCommand & vbcr
           
                crt.Sleep 1000
            Next
        End If
    Next
End Sub
                                           

Cheers

Carlton
scripterror.jpg
Comment
Watch Question

CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014

Commented:
Not sure, but if logging *is* already started, you might be able to change this:
crt.Session.Log True

to this
If crt.Session.Log = False Then crt.Session.Log True

Rob.

Author

Commented:
Rob, thanks for responding, going to check it out now...

Author

Commented:
Rob,

Getting the follow error message...
error3.jpg
CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014
Commented:
OK, so according to here:
http://forums.vandyke.com/archive/index.php/t-1118.html

it doesn't look like you can check the logging state, but the code there just ignores errors and checks the error code when executing the crt.session.log True line.

Replace this:
            crt.Session.Log True

with something like
On Error Resume Next
Err.Clear
crt.Session.Log True
If Err.Number <> 0 Then
	If Err.Number = -2147155969 Then
		' Logging was already enabled
	Else
		' Some other error occurred while enabling logging
	End If
End If
Err.Clear
On Error GoTo 0

Open in new window

Author

Commented:
Hi Rob,

Thanks again for responding. I will check it out shortly and let you know.

Cheers

Carlton

Author

Commented:
Hi Rob,

Unfortunately, the script now only works on the firs tab, or should I say, 'it only works once', but doesn't work on other tabs. However, at least its not crashing this time.

I think we could be nearly there.....

Author

Commented:
Got it working cheers...
CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014

Commented:
Thanks for the grade.  Would you mind explaining what you did to get it working?

Thanks,

Rob.

Author

Commented:
Hi Rob,

If it's ok I will show you tomorrow - about to hit the sack.

Cheers
CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2014

Commented:
Yeah, no problem. No rush.  It just helps others that may be having the same problem.

Rob.