public ScreenImage captureforHighlight(int x, int y, int w, int h) { return robot.captureScreen(new Rectangle(x, y, w, h)); }
if (r != null) { Mouse.use(this); r.smoothMove(loc); r.delay((int) (Settings.DelayBeforeMouseDown * 1000)); r.mouseDown(InputEvent.BUTTON1_MASK); double DelayBeforeDrag = Settings.DelayBeforeDrag; if (DelayBeforeDrag < 0.0) { DelayBeforeDrag = Settings.DelayAfterDrag; r.delay((int) (DelayBeforeDrag * 1000)); r.waitForIdle(); Mouse.let(this); retVal = 1;
/** * first does a click(target) at the given target position to gain focus/carret <br> and then pastes the text <br> * using the clipboard and strg/ctrl/cmd-v (paste keyboard shortcut) * * @param <PFRML> Pattern, Filename, Text, Region, Match or Location target * @param target Pattern, Filename, Text, Region, Match or Location * @param text a string, which might contain unicode characters * @return 1 if possible, 0 otherwise * @throws FindFailed if not found */ public <PFRML> int paste(PFRML target, String text) throws FindFailed { if (target != null && 0 == click(target, 0)) { return 0; } if (text != null) { App.setClipboard(text); int mod = Key.getHotkeyModifier(); IRobot r = getRobotForRegion(); r.keyDown(mod); r.keyDown(KeyEvent.VK_V); r.keyUp(KeyEvent.VK_V); r.keyUp(mod); return 1; } return 0; } //</editor-fold>
if (r1 != null && r2 != null) { Mouse.use(this); r1.smoothMove(loc1); r1.delay((int) (Settings.DelayBeforeMouseDown * 1000)); r1.mouseDown(InputEvent.BUTTON1_MASK); double DelayBeforeDrag = Settings.DelayBeforeDrag; if (DelayBeforeDrag < 0.0) { DelayBeforeDrag = Settings.DelayAfterDrag; r1.delay((int) (DelayBeforeDrag * 1000)); r2.smoothMove(loc2); r2.delay((int) (Settings.DelayBeforeDrop * 1000)); r2.mouseUp(InputEvent.BUTTON1_MASK); Mouse.let(this); retVal = 1;
profiler.lap("after use"); if (shouldMove) { r.smoothMove(loc); profiler.lap("after move"); r.clickStarts(); if (modifiers > 0) { r.pressModifiers(modifiers); profiler.lap("before Down"); if (dblClick) { r.mouseDown(buttons); profiler.lap("before Up"); r.mouseUp(buttons); profiler.lap("before Down"); r.delay(pause); r.mouseDown(buttons); profiler.lap("before Up"); r.mouseUp(buttons); } else { r.mouseDown(buttons); r.delay(pause); profiler.lap("before Up"); r.mouseUp(buttons); r.releaseModifiers(modifiers); r.clickEnds(); r.waitForIdle();
int pause = 20 + (Settings.TypeDelay > 1 ? 1000 : (int) (Settings.TypeDelay * 1000)); Settings.TypeDelay = 0.0; robot.typeStarts(); for (int i = 0; i < text.length(); i++) { log(lvl + 1, "write: (%d) %s", i, text.substring(i)); } else { log(lvl + 1, "write: wait: " + t); robot.delay((t < 60 ? t * 1000 : t)); if (isModifier) { if (tokenSave.endsWith("+")) { robot.keyDown(key); } else { robot.keyUp(key); robot.typeKey(key.intValue()); log(lvl + 1, "write: modifier + " + modifier); for (int n = 0; n < modifier.length(); n++) { robot.keyDown(Key.toJavaKeyCodeFromText(String.format("#%s.", modifier.substring(n, n + 1)))); robot.typeKey(key.intValue()); } else { robot.typeChar(c, IRobot.KeyMode.PRESS_RELEASE); robot.keyUp(Key.toJavaKeyCodeFromText(String.format("#%s.", modifier.substring(n, n + 1)))); robot.delay(pause);
Settings.TypeDelay = 0.0; profiler.lap("before typing"); r.typeStarts(); for (int i = 0; i < text.length(); i++) { r.pressModifiers(modifiers); r.typeChar(text.charAt(i), IRobot.KeyMode.PRESS_RELEASE); r.releaseModifiers(modifiers); r.delay(pause); r.typeEnds(); profiler.lap("after typing, before waitForIdle"); r.waitForIdle(); profiler.end(); return 1;
if (r != null) { Mouse.use(this); r.smoothMove(loc); r.delay((int) (Settings.DelayBeforeDrop * 1000)); r.mouseUp(InputEvent.BUTTON1_MASK); r.waitForIdle(); Mouse.let(this); retVal = 1;
protected static int move(Location loc, Region region) { if (get().device.isSuspended()) { return 0; } if (loc != null) { IRobot r = null; IScreen s = loc.getScreen(); if (s == null) { return 0; } r = s.getRobot(); if (r == null) { return 0; } if (!r.isRemote()) { get().device.use(region); } r.smoothMove(loc); r.waitForIdle(); if (!r.isRemote()) { get().device.let(region); } return 1; } return 0; }
protected static void wheel(int direction, int steps, Region region, int stepDelay) { if (get().device.isSuspended()) { return; } IRobot r = Screen.getRobot(region); get().device.use(region); Debug.log(3, "Region: wheel: %s steps: %d", (direction == WHEEL_UP ? "WHEEL_UP" : "WHEEL_DOWN"), steps); for (int i = 0; i < steps; i++) { r.mouseWheel(direction); r.delay(stepDelay); } get().device.let(region); } }
/** * release the given keys (see keyDown(keycode) ) * * @param keycode Java KeyCode */ public void keyUp(int keycode) { getRobotForRegion().keyUp(keycode); }
/** * press and hold the given keys including modifier keys <br>use the key constants defined in class Key, <br>which * only provides a subset of a US-QWERTY PC keyboard layout <br>might be mixed with simple characters * <br>use + to concatenate Key constants * * @param keys valid keys */ public void keyDown(String keys) { getRobotForRegion().keyDown(keys); }
boolean repeat(double timeout) { findTimeout = timeout; int MaxTimePerScan = (int) (1000.0 / waitScanRate); int timeoutMilli = (int) (timeout * 1000); long begin_t = (new Date()).getTime(); do { long before_find = (new Date()).getTime(); run(); if (ifSuccessful()) { return true; } else if (timeoutMilli < MaxTimePerScan || Settings.UseImageFinder) { // instant return on first search failed if timeout very small or 0 // or when using new ImageFinder return false; } long after_find = (new Date()).getTime(); if (after_find - before_find < MaxTimePerScan) { getRobotForRegion().delay((int) (MaxTimePerScan - (after_find - before_find))); } else { getRobotForRegion().delay(10); } } while (begin_t + timeout * 1000 > (new Date()).getTime()); return false; } }
/** * Get the color at the given Point for details: see java.awt.Robot and ...Color * * @return The Color of the Point */ public Color getColor() { if (getScreen() == null) { return null; } return getScreen().getRobot().getColorAt(x, y); }
protected static void down(int buttons, Region region) { if (get().device.isSuspended()) { return; } get().device.use(region); Screen.getRobot(region).mouseDown(buttons); }
public static void reset() { if (mouse == null) { return; } get().device.unblock(get().device.owner); mouse.get().device.let(get().device.owner); get().device.let(get().device.owner); get().device.mouseMovedResponse = get().device.MouseMovedIgnore; get().device.mouseMovedCallback = null; get().device.callback = null; get().device.lastPos = null; Screen.getPrimaryScreen().getRobot().mouseReset(); }
/** * release all currently pressed keys */ public void keyUp() { getRobotForRegion().keyUp(); }
/** * press and hold the given key use a constant from java.awt.event.KeyEvent which might be special in the current * machine/system environment * * @param keycode Java KeyCode */ public void keyDown(int keycode) { getRobotForRegion().keyDown(keycode); }
getRobotForRegion().delay(500); ScreenImage simg = getScreen().userCapture( (recap ? "recapture " : "capture missing ") + img.getName());
/** * release the given keys (see keyDown(keys) ) * * @param keys valid keys */ public void keyUp(String keys) { getRobotForRegion().keyUp(keys); }