龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java中用Robot类控制鼠标和键盘的方法

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
Java.awt.Robot 类用于控制鼠标和键盘。一旦你得到这种控制,你能够通过你的Java代码做与鼠标和键盘任何类型的操作。这个类通常用于自动化测试。下面的代码样例将向您展示Robot类如何

  
  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();
  }
  }
  }
  

精彩图集

赞助商链接