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

本文介绍如何利用Java的Robot类模拟键盘操作。通过示例代码展示了如何使用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_ENTERpressKey(robot, KeyEvent.VK_ENTER);//pressKey(robot, KeyEvent.);}closeApplication(robot);//robot.keyPress(KeyEvent.VK_SPACE);} catch (AWTException e) {e.printStackTrace();}}}

本文转自
http://blog.youkuaiyun.com/wzwfly/archive/2007/08/21/1753285.aspx
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值