java模拟键盘按键

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


功能描述:

1.打开一个记事本

2.最大化

3.模拟按键操作


现 贴出 源码 :

001import java.awt.AWTException;
002import java.awt.Robot;
003import java.awt.Toolkit;
004import java.awt.datatransfer.Clipboard;
005import java.awt.datatransfer.StringSelection;
006import java.awt.datatransfer.Transferable;
007import java.awt.event.KeyEvent;
008 
009public 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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值