Система координат выглядит следующим образом: x = 0, y = 0 - верхний левый угол вашего основного монитора. Положительный X сместился слева направо. Положительный Y перемещается сверху вниз. (Довольно типично)
(Кстати, вы должны использовать screenSizes = get(0, 'MonitorPositions')
, а не размер экрана, поскольку он правильно обрабатывает несколько мониторов.)
У меня работают следующие команды:
%Setup
robot = java.awt.Robot;
screenSizes = get(0, 'MonitorPositions');
%Mouse to upper left of primary monitor
robot.mouseMove(1, 1)
%Mouse to center of primary monitor
robot.mouseMove(mean(screenSizes(1,[1 3])),mean(screenSizes(1,[2 4])))
%Mouse to hardcoded point 200 pixels down and 500 pixels to the right
robot.mouseMove(500, 200)
%Slow horizontal drag
for ix = 1:500
robot.mouseMove(ix, 200);
pause(0.01)
end
Кстати, код, который вы разместили, кажется, работает для меня, перемещая мышь по диагонали от верхнего левого угла к нижнему правому. К сожалению, приведенный выше код (который работает для меня) может иметь те же проблемы, что и у вас изначально. FWIW, моя версия информации:
MATLAB Version 7.12.0.635 (R2011a)
Operating System: Microsoft Windows XP Version 5.1 (Build 2600: Service Pack 3)
Java VM Version: Java 1.6.0_31-b05 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode