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中的使用与配置
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛