Java在多个显示器上使用mouseMove

4
我正在尝试在拥有多个显示器的电脑上移动光标。然而,当我只使用robot的mouseMove函数时,它无法正常工作。经过一些研究,我发现了这篇stackoverflow文章,它几乎可以解决问题。但现在似乎GraphicsConfiguration和Robot都看到了不同的主监视器。这意味着另一个屏幕的0,0是1920,0。因此,当我尝试使用鼠标时,它总是转移到另一个屏幕上。是否有任何通用的方法来解决这个问题,从而相对于当前位置移动光标?
我希望有人能帮助我。
我的代码:
public static void moveCursor(int dx, int dy) {
    try {
        PointerInfo pi = MouseInfo.getPointerInfo();
        Point mp = pi.getLocation();
        GraphicsConfiguration gc = pi.getDevice().getDefaultConfiguration();
        Rectangle bounds = gc.getBounds();
        Point virtualPoint = new Point(mp);
        virtualPoint.x -= bounds.x;
        virtualPoint.y -= bounds.y;
        Robot r = new Robot();
        r.mouseMove(virtualPoint.x + dx, virtualPoint.y + dy);
    } catch (AWTException ex) { }
}
1个回答

1

尝试

Robot r = new Robot(MouseInfo.getPointerInfo().getDevice());

根据文档,它应该使机器人使用与MouseInfo.getPointerInfo()相同的GraphicsDevice。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接