java模拟键盘按键

come from: http://bbs.51cto.com/thread-1097189-1.html


功能描述:

1.打开一个记事本

2.最大化

3.模拟按键操作


现 贴出 源码 :

001 import java.awt.AWTException;
002 import java.awt.Robot;
003 import java.awt.Toolkit;
004 import java.awt.datatransfer.Clipboard;
005 import java.awt.datatransfer.StringSelection;
006 import java.awt.datatransfer.Transferable;
007 import java.awt.event.KeyEvent;
008  
009 public class Test {
010  
011         /**
012          * @param args
013          * <a href="http://home.51cto.com/index.php?s=/space/2305405" target="_blank">@throws</a> AWTException
014          */
015         public static void main(String[] args) throws Exception {
016                 // TODO Auto-generated method stub
017                 Robot robot = new Robot(); //创建一个robot对象
018                 Runtime.getRuntime().exec("notepad");        //打开一个记事本程序
019                 robot.delay(2000);        //等待 2秒
020                 //窗口最大化
021                 keyPressWithAlt(robot, KeyEvent.VK_SPACE); //按下 alt+ 空格
022                 keyPress(robot, KeyEvent.VK_X);  //按下x键
023                 robot.delay(1000);  //等待 1秒
024                 keyPressString(robot, "大家好,我是一个小机器人,我有很多本领呢 !"); //输入字符串
025                 robot.delay(3000);  //等待 3秒
026                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
027                 keyPressString(robot, "现在,我就向大家展示一下.....嘻嘻"); //输入字符串
028                 robot.delay(3000);  //等待 3秒
029                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
030                 keyPressString(robot, "首先,我能按下 键盘的任何一个键。下面,我单独按下a,b,c,d键"); //输入字符串
031                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
032                 robot.delay(3000);  //等待 3秒
033                 keyPress(robot, KeyEvent.VK_A); //按下 a 键
034                 robot.delay(2000);  //等待 2秒
035                 keyPress(robot, KeyEvent.VK_B); //按下 b 键
036                 robot.delay(2000);  //等待 2秒
037                 keyPress(robot, KeyEvent.VK_C); //按下 c 键
038                 robot.delay(2000);  //等待 2秒
039                 keyPress(robot, KeyEvent.VK_D); //按下 d 键
040                 robot.delay(2000);  //等待 2秒
041                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
042                 keyPressString(robot, "呵呵,完成了。。。。  ");
043                 robot.delay(3000);  //等待 3秒
044                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
045                 keyPressString(robot, "恩,对了    上面 文字很多  是不是 感到 很乱呢???     我现在 帮你清空一下 ");
046                 robot.delay(2000);  //等待 2秒
047                 keyPressWithCtrl(robot,KeyEvent.VK_A); //按下 ctrl+A 全选
048                 robot.delay(2000);  //等待 2秒
049                 keyPress(robot,KeyEvent.VK_DELETE); //清除
050                 robot.delay(3000);  //等待 3秒
051                 keyPressString(robot, "恩,现在 是不是 觉得 清爽多了              另外 我还会按 组合键呢 ...");
052                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
053                 robot.delay(3000);  //等待 3秒
054                 keyPressString(robot, "................好像已经 演示过了 吧 ,呵呵    ");
055                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
056                 robot.delay(3000);  //等待 3秒
057                 keyPressString(robot, "其实,我还有很多本领呢                           现在就不向大家展示了 .....");
058                 keyPress(robot, KeyEvent.VK_ENTER); // 按下 enter 换行
059                 robot.delay(3000);  //等待 3秒
060                 keyPressString(robot, "谢谢大家!!!!!");
061                  
062                  
063  
064         }
065  
066         // shift+ 按键
067         public static void keyPressWithShift(Robot r, int key) {
068                 r.keyPress(KeyEvent.VK_SHIFT);
069                 r.keyPress(key);
070                 r.keyRelease(key);
071                 r.keyRelease(KeyEvent.VK_SHIFT);
072                 r.delay(100);
073         }
074  
075         // ctrl+ 按键
076         public static void keyPressWithCtrl(Robot r, int key) {
077                 r.keyPress(KeyEvent.VK_CONTROL);
078                 r.keyPress(key);
079                 r.keyRelease(key);
080                 r.keyRelease(KeyEvent.VK_CONTROL);
081                 r.delay(100);
082         }
083  
084         // alt+ 按键
085         public static void keyPressWithAlt(Robot r, int key) {
086                 r.keyPress(KeyEvent.VK_ALT);
087                 r.keyPress(key);
088                 r.keyRelease(key);
089                 r.keyRelease(KeyEvent.VK_ALT);
090                 r.delay(100);
091         }
092         //打印出字符串
093         public static void keyPressString(Robot r, String str){
094                 Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();//获取剪切板
095                 Transferable tText = new StringSelection(str);
096                 clip.setContents(tText, null); //设置剪切板内容
097                 keyPressWithCtrl(r, KeyEvent.VK_V);//粘贴
098                 r.delay(100);
099         }
100          
101         //单个 按键
102         public static void keyPress(Robot r,int key){
103                 r.keyPress(key);
104                 r.keyRelease(key);
105                 r.delay(100);
106         }
107 }

猜你喜欢

转载自blog.csdn.net/huangrangg12/article/details/44884233
今日推荐