22
$\begingroup$

Is it possible to set/move the mouse pointer's location directly from Mathematica without using external tools like Run["xdotool mousemove x y"]?

$\endgroup$
3
  • 2
    $\begingroup$ If an interactive application like Mathematica did that, I would consider it a bug... Anyway, I don't think it's possible from within Mathematica. $\endgroup$
    – Jens
    Aug 12, 2012 at 2:50
  • $\begingroup$ You don't mean setting the current insertion point or selection? $\endgroup$ Aug 12, 2012 at 6:55
  • $\begingroup$ not the selection inside Mathematica. Just moving the mouse pointer anywhere inside the screen $\endgroup$ Aug 15, 2012 at 6:34

1 Answer 1

39
$\begingroup$
Needs["JLink`"]
ReinstallJava[]
robotclass=JavaNew["java.awt.Robot"]
robotclass@mouseMove[#,300]&/@Range@900;
$\endgroup$
9
  • 3
    $\begingroup$ Impressive .. :) $\endgroup$ Aug 21, 2012 at 0:50
  • 1
    $\begingroup$ Second that, impressive indeed, +1. $\endgroup$ Aug 21, 2012 at 0:53
  • 5
    $\begingroup$ +1 Great ;-) Table[robotclass@mouseMove[Round[300 (Cos[x] + 1)], Round[100 (Sin[2 x] + 1)]], {x, 0, 2 Pi, .001}]; $\endgroup$ Aug 21, 2012 at 1:25
  • 2
    $\begingroup$ Impressive?? That's scary... $\endgroup$
    – sebhofer
    Oct 19, 2012 at 8:41
  • 2
    $\begingroup$ @John: No, it's not. a) in the example of the o/p xdotool would be an external tool/application/program that you'd need to call. b) JLink is part of M, and WRI's official position is that this makes all of Java part of M (same with NETLink and .Net), as indicated by marketing materials. c) you ARE actually writing this in M. My code above is NOT Java code, it's M code. It just LOOKs like Java code (and that's a smart design choice of JLink/NETLink), but it isn't. These are all M symbols, it's M syntax, it runs from the M f/e, and it is executed/"scripted" through the kernel. $\endgroup$ Nov 11, 2013 at 16:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.