AWT 机器人无法拖动窗口

2024-01-10

我正在尝试使用 AWT 机器人移动 Windows 资源管理器窗口。该机器人运行Java 7,操作系统为Windows 7。

我可以移动鼠标并单击某些内容,但是当我尝试单击并拖动时,它似乎根本没有按下按钮。我看不出出了什么问题,或者想不出如何弄清楚发生了什么。

我开始使用 Sikuli:

mouse.mouseDown(InputEvent.BUTTON1_MASK);
mouse.drop(targetLocation);

当这不起作用时,我尝试了一种较低级别的实现,直接与机器人一起工作:

Robot robot = new Robot();
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseMove(targetLocation.getX(), targetLocation.getY());
robot.mouseRelease(InputEvent.BUTTON1_MASK);

鼠标从正确的位置开始并移动到正确的目的地,但似乎没有按下按钮。


在 sikuli 中使用 mouse.drag(),然后使用 mouse.drop()。 例子:

ScreenRegion fullScreenRegion=new ScreenRegion();
ImageTarget dragImageTarget=new ImageTarget("dragTargetFile");
ScreenRegion dragTargetRegion=fullScreenRegion.find(dragImageTarget);
ImageTarget dropImageTarget=new ImageTarget("dropTargetFile");
ScreenRegion dropTargetRegion=fullScreenRegion.find(dropImageTarget);

Mouse mouse = new DesktopMouse();
mouse.drag(dragTargetRegion.getCenter());
mouse.drop(dropTargetRegion.getCenter());

对于 Java 机器人 API: 您应该按顺序调用 mouseMove()、mousePress()、mouseMove(),然后调用 mouseRelease()。 例子:

Robot robot=new Robot();
// drag
robot.mouseMove(x1, y1);
robot.mousePress(InputEvent.BUTTON1_MASK);
// drop
robot.mouseMove(x2, y2);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWT 机器人无法拖动窗口 的相关文章

随机推荐