【问题标题】:Cannot get Robot class to right click无法让机器人类右键单击
【发布时间】:2013-02-05 13:51:29
【问题描述】:

我正在尝试让 Robot 类右键单击屏幕上的图像,以便我可以保存它。问题是我似乎无法让机器人成功模拟右键单击。这是我正在做的一些示例代码。

BUTTON2_DOWN_MASK 似乎是滚轮的掩码。每当我执行此代码时,它首先会定期单击该位置,但随后会弹出滚轮超快速移动圆圈并告诉我现在可以以光速滚动,但我想要右键单击..

代码:

// This is the function I use to simulate a full click at location x,y on the screen
// Rob is my Robot
public void click(int x, int y, int mask)
{
    rob.mouseMove(x, y);
    sleepy(1000);
    rob.mousePress(mask);
    rob.mouseRelease(mask);
}

// This is the few lines of code that call this function
// sleepy just calls the Thread.sleep function.

sleepy(1000); // Wait one second
click(705, 390, InputEvent.BUTTON1_DOWN_MASK);
sleepy(1000);
click(705, 390, InputEvent.BUTTON2_DOWN_MASK);
sleepy(1000);

【问题讨论】:

  • 你可以调用 rob.delay(1000) 而不是 sleepy。

标签: java robot


【解决方案1】:

使用InputEvent.BUTTON3_DOWN_MASK 进行右键单击。 BUTTON2 是您正确注意到的鼠标滚轮,左键单击是 BUTTON1。

看到这个example

【讨论】:

  • 基本上是因为Java在这里犯了一个错误。通常鼠标右键被认为是第二个鼠标键,中间的一个是第三个。第四个按钮通常位于您的拇指处。
猜你喜欢
  • 2015-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2013-07-20
相关资源
最近更新 更多