gpt4 book ai didi

java - Robot.mouseMove 没有正确移动到指定位置

转载 作者:可可西里 更新时间:2023-11-01 12:50:32 25 4
gpt4 key购买 nike

每当我为机器人运行 mouseMove 命令时,鼠标并不总是到达相同的位置。例如,我有以下代码:

import java.awt.Robot;
import java.util.concurrent.TimeUnit;

public class MainBot {
public static void main(String[] args){
try {
Robot screenWin = new Robot();
TimeUnit.SECONDS.sleep(2);
screenWin.mouseMove(100, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
}

代码通常使鼠标在 X 处结束:

Mouse Location after running首先,我点击运行(我正在使用 eclipse)并将鼠标移动到一个位置(在 2 秒计时器启动之前)。然后 2 秒延迟结束,鼠标移动,然后脚本结束。问题是,鼠标似乎永远不会去同一个地方两次。例如,鼠标应该转到 (100, 300) 但大多数时候它会转到看起来像 (0, 300) 的地方。然而,其他时候,如果我在开始时将鼠标移动到它应该大致所在的位置,那么它就会到达正确的位置。

我找到了鼠标应该使用 Paint 获取屏幕截图像​​素位置的位置,但我不认为这是因为位置不断变化。

我是否遗漏了 mouseMove 坐标的工作原理?

编辑:基本上,我点击开始那个程序,然后我将鼠标移动到一个新位置(所以在 mouseMove 函数之前有一个不同的初始位置)然后 mouseMove 执行。每次我这样做时,鼠标都会移动到不同的位置。

最佳答案

OpenJDK 上有一个 Unresolved 错误,所以这可能是相关的:

https://bugs.openjdk.java.net/browse/JDK-8196030?jql=project%20in%20(JDK)%20AND%20component%20in%20(client-libs)%20AND%20Subcomponent%20in%20(java.awt)

错误详细信息表明 Windows 10 Fall Creators 更新中可能引入了与屏幕缩放和 mouse_move 函数相关的问题。

与此同时,您可以尝试将屏幕比例设置为 100% 而不是 125%,看看是否有帮助。

关于java - Robot.mouseMove 没有正确移动到指定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48799393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com