Untested, try something like this (DelphiScript):
function WaitForObject(ObjectName, WaitTime: integer = 60): boolean;
{WaitTime is in seconds}
var
AUT: OleVariant;
I: Integer;
begin
AUT := Sys.Process('MyApp');
for I := 1 to WaitTiime do begin
Result := AUT.WaitVCLObject(ObjectName, 1000).Exists;
if Result then break;
end;
end;
The key to the "Exists" property is that you need to have an object for which to call the exists property. So, you HAVE to use a Wait method of somesort. The Wait method, if it does not find the object, returns an empty stub where the Exists property is False so you never get the error you indicated.
The above code may not work EXACTLY for you, but this is a way to create a custom wait routine.