我目前正在使用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);
}
}
有关如何点击鼠标进行注册的想法吗?
答案 0 :(得分:0)
在某些游戏中你只能做到这一点。取决于引擎和实现,例如在源引擎游戏中你的事件将被注册(可能是基于我的经验示例:CS:GO),萌芽虚幻引擎游戏可能不会注册任何东西。
游戏开发人员实际上阻止了一些 WIN32 mouse_event 的调用是很常见的,这就是Robot API所使用的。所以你可以做很多事情(使用Robot api)。