java.awt.Robot里面的游戏?

我试图用下面的代码来模拟按键。 当我打开记事本时,它的工作正常,但是当我打开我想要使用它的游戏时,它什么都不做。 所以击键似乎不起作用。 我试图模拟鼠标移动和点击,这些行动做的工作。 有谁知道如何解决这个问题?

我发现这个问题, 我怎样才能在游戏中使用java.awt.Robot? 但我不能添加评论或任何东西。

package MyProject; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class KeyStroke { public static void main(String[] args) throws AWTException { Robot robot = new Robot(); robot.delay(3000); robot.keyPress(KeyEvent.VK_Q); robot.keyPress(KeyEvent.VK_W); robot.keyPress(KeyEvent.VK_E); robot.keyPress(KeyEvent.VK_R); robot.keyPress(KeyEvent.VK_T); robot.keyPress(KeyEvent.VK_Y); } } 

您可能想要按下并释放按键来模拟按键,即您的当前代码将按住Q,W,E,R,T和Y,直到触发释放。 另外,你可能想把它们放一会儿,因为这样做会给我造成一些麻烦。

代码

 package MyProject; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class KeyStroke { private static Robot robot; public static void main(String[] args) throws AWTException { robot = new Robot(); robot.delay(3000); keystroke(KeyEvent.VK_Q); keystroke(KeyEvent.VK_W); keystroke(KeyEvent.VK_E); keystroke(KeyEvent.VK_R); keystroke(KeyEvent.VK_T); keystroke(KeyEvent.VK_Y); } private static void keystroke(int key) { robot.keyPress(key); robot.delay(100); // hold for a tenth of a second, adjustable robot.keyRelease(key); } } 

相反上面 – 你在哪里添加你的关键监听器?

 public class BetaTest { public static void main (String[] args){ new BetaTest().startUp(); } private void startUp() { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.pack(); frame.setVisible(true); final KeyAdapter ka = new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { super.keyPressed(e); System.out.println("key pressed"); } }; frame.addKeylistner(ka); Runnable r = new Runnable() { @Override public void run() { try { Thread.sleep(1000); KeyEvent ke = new KeyEvent(frame, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_A, 'a'); ka.keyPressed(ke); } catch (InterruptedException e) { e.printStackTrace(); } } }; Thread t = new Thread(r); t.setDaemon(true); t.start(); } 

}

并输出令人惊讶

 key pressed