【问题标题】:Java.awt.robot mousepress is not having any effectJava.awt.robot mousepress 没有任何效果
【发布时间】:2013-10-10 17:27:07
【问题描述】:

我正在尝试使用 awt.robot 在不同的程序中模拟左键单击,代码如下:

int mask = InputEvent.BUTTON1_DOWN_MASK;
bot.mouseMove(x, y);   
bot.mousePress(mask);
bot.mouseRelease(mask);

当这将鼠标移动到屏幕的正确部分时,其他程序似乎没有收到点击。我做错了什么?

在某些其他程序中,同样的方法会产生点击,但在一个程序中,它没有效果。

我尝试Thread.sleep() 在 mouseMove 和 mousePress 之间等待 30-300 毫秒,但没有效果。

我是否需要使用 JNI 和原生 windows API 来实现这一点?我在 Windows 8 上。

【问题讨论】:

标签: java awt mouseevent awtrobot thread-sleep


【解决方案1】:

您使用了错误的掩码:InputEvent.BUTTON1_MASK

【讨论】:

  • 试过了,也没效果。
  • 只有在一个特定的程序中没有收到点击,在另一个程序中相同的方法正在工作。鼠标正在移动,但点击无效。
  • 好吧,那么我猜操作系统中存在一些冲突或不兼容的东西。我认为您在代码中没有做错任何事情。但是,请确保其他应用程序具有焦点。也许这是问题的一部分。要强制聚焦,您可以尝试单击两次。但是,请注意:单击两次可能会在应用程序中执行两个操作。
  • 谢谢,也试过点击两次,但也没有效果。我在 Windows 8 上。
  • 我没有灵感了。对不起:)
【解决方案2】:

您是否在bot.mousePressed(mask)bot.mouseReleased(mask) 之间尝试过bot.delay(n)

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 2019-06-19
    • 2017-07-18
    • 2010-10-17
    • 2012-11-25
    • 2016-08-26
    • 2021-12-15
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多