您的位置:首页 > 编程语言 > Java开发

java模拟键盘按键

2014-12-02 11:16 302 查看

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: