【发布时间】:2017-04-03 22:16:08
【问题描述】:
我目前正在使用 Java Robot 类将鼠标移动到坐标:
Robot bot = new Robot();
bot.mouseMove(x, y);
问题是我需要将鼠标移动到一个坐标才能单击弹出窗口中的特定按钮,并且窗口每次出现时都可以从一个位置移动到另一个位置(它并不总是在同一个位置) . (在我的具体情况下,我将Ctrl + P 发送到记事本,然后单击弹出窗口中的“打印”按钮)。
我正在考虑通过以下方式检索我想要点击的按钮的 RGB 值:
Color color = bot.getPixelColor( MouseInfo.getPointerInfo().getLocation().x
, MouseInfo.getPointerInfo().getLocation().y);
System.out.println(color.getRGB());
然后以某种方式将鼠标移动到具有给定 RGB 值的位置,但我不确定如何实现。
或者有没有我没有想到的替代解决方案?
谢谢!
更新:
我意识到使用 RGB 值移动鼠标可能不是最好的解决方案,因为如果有多个坐标具有相同的 RGB 值,它可能会检测到错误的点。有没有办法解决这个问题?
【问题讨论】:
-
我会使用 JNA 获取窗口位置,然后使用该位置计算哪个是按钮的位置,或者至少有较小的空间来使用 mouseMove 来查找该像素。