!7 cm RecognizeScreen > DynPrintLogAndEnabled { switchable int x1; switchable int y1; switchable int w = screenWidth(); switchable int h = screenHeight(); transient WithTimestamp> lastScreen; new Average screenShotTime; Rect area() { ret rect(x1, y1, w, h); } start-thread { dm_doEvery(60.0, r { if (enabled) printStats(); }); repeat { if (!enabled) sleepSeconds(1); else { long time = nanoTime(); lastScreen = withTimestamp(okOrError(-> screenshot(area()))); screenShotTime.add(nanosToSeconds(nanoTime()-time)); } } } void printStats() { print(stats()); } S stats() { ret formatColonProperties( "Last screenshot taken", lastScreen, "Average time to take a screenshot", screenShotTime); } }