static Accessible WaitFor(Process p, Predicate <Accessible> match, int pause) { Accessible a; do { Thread.Sleep(pause); ptr = new EnumWindowsProc(FindWindow); EnumWindows(ptr, new IntPtr(p.Id)); a = Accessible.fromWindow(gHWND); } while (a == null); Accessible b; do { Thread.Sleep(pause); b = a.Find(match); } while (b == null); return(b); }