【问题标题】:Simulate Mouse Click in Java in DirectX Game在 DirectX 游戏中用 Java 模拟鼠标点击
【发布时间】:2017-01-03 17:17:39
【问题描述】:

我目前在用 C++ 编写的 DirectX 游戏中使用 Java 的机器人类。我可以成功使用 Robot 类的 mouseMove 方法,但是当我尝试使用鼠标左键单击输入事件时,什么也没有发生。我尝试了释放和按下之间的不同时间间隔,但无济于事。注意:我目前在管理员模式下运行 eclipse。代码如下:

public class test {
    public static void main(String [] args) throws AWTException, I nterruptedException{
    Robot r = new Robot();

    Thread.sleep(3000);
    for(int i = 0; i<20; i++){
        r.mouseMove(100+i*50, 550);
        Thread.sleep(1);
    }

    Thread.sleep(1000);
    r.mousePress(InputEvent.BUTTON1_MASK);
    Thread.sleep(50);
    r.mouseRelease(InputEvent.BUTTON1_MASK);
    Thread.sleep(50);
    r.mousePress(InputEvent.BUTTON1_MASK);
    Thread.sleep(50);
    r.mouseRelease(InputEvent.BUTTON1_MASK);
    Thread.sleep(50);
  }
}

知道如何让鼠标点击注册吗?

【问题讨论】:

    标签: java robot


    【解决方案1】:

    在某些游戏中你不能这样做。取决于引擎和实现,例如在源引擎游戏中你的事件将被注册(可能,根据我的经验示例:CS:GO),萌芽虚幻引擎游戏可能不会注册任何东西。

    对于游戏开发者来说,实际上阻止一些调用 WIN32 mouse_event 是很常见的,这是 Robot API 使用的。所以你可以做的不多(使用 Robot api)。

    【讨论】:

      猜你喜欢
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 2017-04-17
      相关资源
      最近更新 更多