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
|
}
|
java模拟键盘按键相关推荐
- java整理软件---java模拟键盘,鼠标操作
1.Java 模拟键盘输入的小Demo,实现自动按下:模拟Ctrl+Alt+Z的按下和抬起 如果你开着qq的话,那么qq会自动弹出来.哈哈,代替人工操作; import java.awt.Rob ...
- C/C++使用keybd_event模拟键盘按键
1 #include <stdio.h> 2 #include <Windows.h> 3 4 /* 5 设置键盘大小写状态 6 big:为TRUE则切换大写状态,否则切换小写 ...
- python调用linux软键盘_在Linux中使用Python模拟键盘按键
之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...
- VC+API模拟键盘按键(详解篇)
模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...
- linux c实现键盘模拟,C++模拟键盘按键的实例
这个与模拟鼠标点击的函数差不多,直接上函数 keybd_event(VK_RETURN,0,0,0); keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); 这是模拟 ...
- 模拟键盘按键 自动输入文字
模拟键盘按键 自动输入文字 键盘对于每个操作电脑的人员来说是最熟悉不过的了.键盘上的按键可分为两类 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键:按下后虽然看不到 ...
- python 模拟键盘 linux,在Linux中使用Python模拟键盘按键,linuxpython
在Linux中使用Python模拟键盘按键,linuxpython 之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperc ...
- 驱动中实现模拟键盘按键
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 标 题: ...
- 模拟键盘按键、鼠标单击功能发布(可发送快捷键、热键、鼠标左键多次单击)—— 定时执行专家
目录 ◆ 定时执行专家 -- 模拟键盘按键 ◆ 定时执行专家 -- 模拟鼠标单击 ◆ 定时执行专家 -- 模拟键盘按键 - 设置方法 (1)点击 "定时执行专家" 工具栏 &quo ...
最新文章
- hung-yi lee_p18_图神经网络(cont.)
- Java new关键字和newInstance()方法的区别
- linux清除硬盘,linux下清除硬盘的几种方法
- python字符串encode()decode()
- 帝国的黄昏:SQL是世界上最牛逼的语言
- python偏最小二乘法公式,python3 偏最小二乘法实现
- 北京爷们儿跟北京妞儿 倍儿靠谱儿-----女人篇
- mysql数据库 with as用法
- 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(三)
- CodeForces - 1324D Pair of Topics(二分或双指针)
- HTML边框圆角椭圆原理,CSS3教程:border-radius你以为就是个圆角边框吗?
- 赏析:滕王阁序(唐代:王勃)
- android顶部按钮图片,安卓动态改变button顶部图片即drawableTop属性
- 【线代NumPy】第八章 - 特征值和特征向量 | Eigenvalue and Eigenvector | 简述并提供代码
- 数据库空间管理-学习笔记
- R语言 | 二分类和多分类的逻辑回归实现
- 进化算法--遗传算法
- MiFlash提示“错误代码”为“0xffffffff”
- i5 12600kf和i5 10400f 选哪个
- 为什么iPhone拍照更好看
热门文章
- hbase2.1.6 mr
- vr线上虚拟展馆H5三维购物带的便利【商迪3D】与您细说
- 3D角色硬表面建模技巧与思路分享
- P1293 班级聚会
- [附源码]Python计算机毕业设计超市商品管理系统
- [python]一个特别好的学习python网站
- 【Python免费网站】2021学习python 5个绝佳的网站,新手小白再也不怕学不会!
- win10查看电池损耗:生成损耗报告
- android 乐固渠道打包,安卓腾讯乐固(legutools)多渠道打包(友盟)
- DDSM数据库在windows环境下的转换