技术开发 频道

如何在Java中使用Robot类

  【IT168 技术文档】Java.awt.Robot 类用于控制鼠标和键盘。一旦你得到这种控制,你能够通过你的Java代码做与鼠标和键盘任何类型的操作。这个类通常用于自动化测试。先面的代码样例将向您展示Robot类如何处理键盘事件。如果你运行此代码,并打开notepad,您将在notepad中看到HI CAOER.赶快试一试吧。

 

  import java.awt.AWTException;   import java.awt.Robot;   import java.awt.event.KeyEvent;   public class RobotExp {   public static void main(String[] args) {   try {   Robot robot = new Robot();   //定义5秒的延迟以便你打开notepad 哈哈   // Robot 开始写   robot.delay(5000);   robot.keyPress(KeyEvent.VK_H);   robot.keyPress(KeyEvent.VK_I);   robot.keyPress(KeyEvent.VK_SPACE);   robot.keyPress(KeyEvent.VK_C);   robot.keyPress(KeyEvent.VK_A);   robot.keyPress(KeyEvent.VK_O);   robot.keyPress(KeyEvent.VK_E);   robot.keyPress(KeyEvent.VK_R);   } catch (AWTException e) {   e.printStackTrace();   }   }   }

 

  网友完善了以上代码:

  import java.awt.AWTException;   import java.awt.Robot;   import java.awt.event.KeyEvent;   import java.io.IOException;   public class RobotExp {   public static void pressKey(Robot robot, int keyvalue) {   robot.keyPress(keyvalue);   robot.keyRelease(keyvalue);   }   public static void pressKeyWithShift(Robot robot, int keyvalue) {   robot.keyPress(KeyEvent.VK_SHIFT);   robot.keyPress(keyvalue);   robot.keyRelease(keyvalue);   robot.keyRelease(KeyEvent.VK_SHIFT);   }   public static void closeApplication(Robot robot) {   // pressKey(robot, KeyEvent.VK_ALT);   // pressKey(robot, KeyEvent.VK_F4);   robot.keyPress(KeyEvent.VK_ALT);   robot.keyPress(KeyEvent.VK_F4);   robot.keyRelease(KeyEvent.VK_ALT);   robot.keyRelease(KeyEvent.VK_F4);   //for linux.   // robot.keyPress(KeyEvent.VK_ALT);   // robot.keyPress(KeyEvent.VK_W);   // robot.keyRelease(KeyEvent.VK_ALT);   // robot.keyRelease(KeyEvent.VK_W);   robot.keyPress(KeyEvent.VK_N);   robot.keyRelease(KeyEvent.VK_N);   }   public static void main(String[] args) throws IOException {   try {   Robot robot = new Robot();   Runtime.getRuntime().exec("notepad");   // For linux.   //Runtime.getRuntime().exec("gedit");   //定义5秒的延迟以便你打开notepad 哈哈   // Robot 开始写   robot.delay(3000);   for (int i = 0; i < 100; i++) {   pressKeyWithShift(robot, KeyEvent.VK_H);   pressKey(robot, KeyEvent.VK_I);   pressKey(robot, KeyEvent.VK_SPACE);   //pressKeyWithShift(robot, KeyEvent.VK_H);   pressKeyWithShift(robot, KeyEvent.VK_I);   pressKey(robot, KeyEvent.VK_SPACE);   pressKey(robot, KeyEvent.VK_A);   pressKey(robot, KeyEvent.VK_M);   pressKey(robot, KeyEvent.VK_SPACE);   pressKey(robot, KeyEvent.VK_T);   pressKey(robot, KeyEvent.VK_H);   pressKey(robot, KeyEvent.VK_E);   pressKey(robot, KeyEvent.VK_SPACE);   pressKey(robot, KeyEvent.VK_J);   pressKey(robot, KeyEvent.VK_A);   pressKey(robot, KeyEvent.VK_V);   pressKey(robot, KeyEvent.VK_A);   pressKey(robot, KeyEvent.VK_SPACE);   pressKey(robot, KeyEvent.VK_R);   pressKey(robot, KeyEvent.VK_O);   pressKey(robot, KeyEvent.VK_B);   pressKey(robot, KeyEvent.VK_O);   pressKey(robot, KeyEvent.VK_T);   // VK_ENTER   pressKey(robot, KeyEvent.VK_ENTER);   //pressKey(robot, KeyEvent.);   }   closeApplication(robot);   //robot.keyPress(KeyEvent.VK_SPACE);   } catch (AWTException e) {   e.printStackTrace();   }   }   }
0
相关文章