View Single Post
  #1  
Old 07-05-2016, 12:00 PM
Rhudi's Avatar
Rhudi Rhudi is offline
Registered User
 
Join Date: Jul 2013
Location: Greenville, SC
Posts: 84
Window Focus and Clipboard

I have a script that runs just fine (so, why am I bothering anyone?)

Here is the issue...

In the following code snippit:
Code:
'
    crt.Session.SetStatusText("Receiving Data...")
    crt.Screen.SendSpecial "MENU_CLEAR_SCREEN_AND_SCROLLBACK"
    crt.Screen.Send "cat " & strDevice & vbCr
    crt.Screen.WaitForString("RANCID-CONTENT-TYPE")
'
    intResult = crt.Screen.WaitForStrings("configs $ ", "cat: ", 250)

    Select Case intResult
        Case 0,2 ' Timeout or error from cat command
            Exit Sub
    End Select
'
    crt.Screen.SendSpecial "MENU_SELECT_ALL"
    crt.Screen.SendSpecial "MENU_COPY"
    arrData = Split(crt.Clipboard.Text, vbCrLf)
    crt.Screen.Send "cd" & vbCr & _
                    "clear" & vbCr
'
If SecureCRT looses keyboard focus, the "Select All" and "Copy" commands break.

Also, if I have multiple tabs open in SecureCRT, the "Select / Copy" isn't getting data from the correct tab.

Here is a completely different way that doesn't exhibit that symptom:
Code:
'
    crt.Session.SetStatusText("Receiving Data...")
    crt.Screen.SendSpecial "MENU_CLEAR_SCREEN_AND_SCROLLBACK"
    arrData = Split(CaptureOutputOfCommand("cat " & strDevice, sProwlName & ":"), vbCrLf)
'
And, the Function:
Code:
Function CaptureOutputOfCommand(szCommand, szPrompt)
    crt.Screen.Send szCommand & vbCr            ' Send command to the router.
    crt.Screen.WaitForString szCommand & vbCrLf ' Wait for the Command to be echoed by router.
    CaptureOutputOfCommand = crt.Screen.ReadString(szPrompt)            
End Function
This second method seems to slow down if there is a lot of data coming in (almost as if memory is filling up).

---

So, my question is: Which method is best? And, in the first method, how could I avoid the "focus" issue (should I specify the tab or something)?

A coworker helped me. "crt.Window.Activate", right before the "Select/Copy".

---

Since this is faster, I'll go with the first way is better.

Last edited by Rhudi; 07-05-2016 at 02:44 PM. Reason: Corrected "Focus" issue
Reply With Quote