This example macro creates three different wait-type objects, adds them to a Waits collection object, then waits for one of the wait-type objects in the collection to signal its event.
Sub Main
create the necessary System and Session objects
Dim sys as Object, sess as Object
Set sys = CreateObject("Extra.System")
assumes an open session
Set sess = sys.ActiveSession
retrieve a new instance of a Waits collection object
Dim waits as Object
Set waits = sys.Waits
declare several object variables
Dim w1 as Object, w2 as Object, w3 as Object
Call methods to retrieve wait-type objects.
Note that it is crucial to use the "Set obj = " syntax
when making these calls otherwise wait-type objects
will not be returned, and the methods will wait synchronously,
in the order in which they were called
Set w1 = sess.Screen.WaitForString("Ready;")
Set w2 = sess.Screen.WaitForCursor(10, 1)
Set w3 = sess.WaitForDisconnect()
add the wait-type objects to the Waits collection object
id1 = waits.Add(w1)
id2 = waits.Add(w2)
id3 = waits.Add(w3)
Wait for up to a minute to see which event occurs first
retval = waits.Wait(60000)
Figure out which wait-type object fired its event,
causing the Wait method to return
Select Case retval
case id1
MsgBox "String we waited for was found!"
case id2
MsgBox "Cursor is now at desired location!"
case id3
MsgBox "Host session has been disconnected!"
case 0
MsgBox "Timed-out while waiting for an event!"
End Select
End Sub