在 DirectX 游戏中模拟 Java 中的鼠标点击

Simulate Mouse Click in Java in DirectX Game

我目前正在用 C++ 编写的 DirectX 游戏中使用 Java 的机器人 Class。我可以成功使用Robot class的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);
  }
}

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

在某些游戏中,您无法在引擎和实现上做 this.Depends,例如在源引擎游戏中,您的事件将被注册(可能,根据我的经验示例:CS:GO),bud unreal engine 游戏可能没有注册任何东西。

游戏开发人员实际上阻止某些 WIN32 mouse_event 的调用是很常见的,这就是 Robot API uses.So您无能为力(使用 Robot api)。