!7 static BufferedImage img; static MouseMover mover; static ExternalAI findVolumeIcon, findAudioMixer; static int w = 400, h = 200; p { findVolumeIcon = loadWinnerAI(#1007093); findAudioMixer = loadWinnerAI(#1007103); mover = new MouseMover().enable(); try { if (!step2()) { if (!step1()) fail("no volume icon"); long time = sysNow(); while (!step2()) { if (mover.hasInterference()) ret; if (sysNow() >= time+5000) fail("timeout, no popup found"); } print("Done, audio mixer should pop up"); } } finally { mover.disable(); } } sbool step1() { ret findAndClick(findVolumeIcon); } sbool step2() { ret findAndClick(findAudioMixer); } sbool findAndClick(ExternalAI ai) { img = shootBottomRightCorner2(w, h); Pt p = ai.call(img); if (p == null) false; mover.click(p.x+screenWidth()-img.getWidth(), p.y+screenHeight()-img.getHeight()); true; }