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

文章作者 100test 发表时间 2007:09:29 12:42:31
来源 100Test.Com百考试题网


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().

}

}

}


相关文章


ring中事件处理的小技巧
KodoEJB:实现类和类之间的关联关系
EJB3.0新规范概览及其未来发展
KodoEJB:符合EJB3规范的持久层框架
Java中用Robot类控制鼠标和键盘的方法
EJB3.0 Beehive开发客户反馈系统
使用OptimizeIT进行Java内存泄露的检测
Java关于克隆与“冷藏”和“解冻”方法
FCKeditor编辑器在JAVA中的使用与配置
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛