在DirectX Game

时间:2016-08-27 00:37:01

标签: java robot

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

有关如何点击鼠标进行注册的想法吗?

1 个答案:

答案 0 :(得分:0)

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

游戏开发人员实际上阻止了一些 WIN32 mouse_event 的调用是很常见的,这就是Robot API所使用的。所以你可以做很多事情(使用Robot api)。