I am having a problem with the Invoke() method (for the MainWin of the app under test). If the script tries to load up the app as part of defaultbasestate, but the app is already running, then a dialog will appear saying "<name of app> already running". Of course other problems can occur on start-up, such as a dialog complaining that the machine on which the app is being loaded does not meet the minimum specification for the app and so refusing to continue, or the dialog that complains about missing database tables, etc.
My point is that Invoke() has no way of spotting these dialogs and realising that the login window is not going to appear.
Presumably someone else must have encountered this kind of problem before - what turns out to be a useful way of getting around this - do you need to completely redefine the Invoke() method for that MainWin declaration, using SYS_Execute() or whatever, or is there an easier way?