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

来源:互联网 发布:张作霖历史评价 知乎 编辑:程序博客网 时间:2024/06/10 07:38
导读:
  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_ENTERpressKey(robot, KeyEvent.VK_ENTER);//pressKey(robot, KeyEvent.);}closeApplication(robot);//robot.keyPress(KeyEvent.VK_SPACE);} catch (AWTException e) {e.printStackTrace();}}}

本文转自
http://blog.csdn.net/wzwfly/archive/2007/08/21/1753285.aspx
原创粉丝点击