java Robot 类模拟键盘按键和鼠标点击(全局模拟)
2017-07-14 09:37
585 查看
Robot类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,
我们可以利用这个类写出好多有意思的东西,下面我将详细的这个类的用法。
Robot这个类中的方法并不是很多,常用的有以下几个:
void delay
void keyPress(int keycode) 按下指定的键
void keyRelease(int keycode) 释放指定的键
void mouseMove(int x,int y) 将鼠标移动到给定的屏幕坐标上
void mousePress(int buttons) 按下一个或多个鼠标按键
void mouseRelease(int buttons) 释放一个活多个鼠标按键
void mouseWheel(int wheelAmt) 滚动鼠标滑轮
下面看一个自动实现HelloWorld的例子:
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,
Robot.mouseMove将实际移动鼠标光标,而不是只生成鼠标移动事件。
我们可以利用这个类写出好多有意思的东西,下面我将详细的这个类的用法。
Robot这个类中的方法并不是很多,常用的有以下几个:
void delay
(int ms)睡眠指定的时间(类似于线程中sleep)
void keyPress(int keycode) 按下指定的键
void keyRelease(int keycode) 释放指定的键
void mouseMove(int x,int y) 将鼠标移动到给定的屏幕坐标上
void mousePress(int buttons) 按下一个或多个鼠标按键
void mouseRelease(int buttons) 释放一个活多个鼠标按键
void mouseWheel(int wheelAmt) 滚动鼠标滑轮
下面看一个自动实现HelloWorld的例子:
public class Main { private static Robot robot; public static void main(String[] args) { try { robot = new Robot();//创建Robot对象 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //这里是按下和释放alt键,这个键的功能是调用菜单 robot.keyPress(KeyEvent.VK_ALT); robot.keyRelease(KeyEvent.VK_ALT); robot.delay(500);//延迟500ms //这里是按下和释放回车键,用于确定是file选项 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //选择New robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //选择Java Project robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //输入字母a,即工程名 robot.keyPress(KeyEvent.VK_A); robot.keyRelease(KeyEvent.VK_A); robot.delay(500); //回车确定创建工程 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //将鼠标抵用到刚刚建立的工程上面,这个坐标是作者在自己的电脑上实验获得的,在不同的电脑上可能 不一样,可以用 //Point point = MouseInfo.getPointerInfo().getLocation(); //System.out.println(point);来打印当前鼠标的坐标,从而找到对的位置 robot.mouseMove(43, 136); //按下和释放鼠标左键,选定工程 robot.mousePress(KeyEvent.BUTTON1_MASK); robot.mouseRelease(KeyEvent.BUTTON1_MASK); //alt键选择菜单并调出newClass的选项 robot.keyPress(KeyEvent.VK_ALT); robot.keyRelease(KeyEvent.VK_ALT); robot.delay(500); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //下面换回小写 //切换成大写 robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(500); robot.keyPress(KeyEvent.VK_H); robot.keyRelease(KeyEvent.VK_H); robot.delay(200); //换回小写 robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_E); robot.keyRelease(KeyEvent.VK_E); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(200); robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_W); robot.keyRelease(KeyEvent.VK_W); robot.delay(200); robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(200); robot.keyPress(KeyEvent.VK_R); robot.keyRelease(KeyEvent.VK_R); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_D); robot.keyRelease(KeyEvent.VK_D); robot.delay(200); //移动鼠标选择自动穿件main函数 robot.mouseMove(533, 448); robot.mousePress(KeyEvent.BUTTON1_MASK); robot.mouseRelease(KeyEvent.BUTTON1_MASK); robot.delay(500); //回车创建完成 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.delay(500); //移动光标到输入代码的行上 robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); robot.keyPress(KeyEvent.VK_DOWN); robot.keyRelease(KeyEvent.VK_DOWN); robot.delay(500); //输入syso并用alt+/快捷键补全 robot.keyPress(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_S); robot.delay(200); robot.keyPress(KeyEvent.VK_Y); robot.keyRelease(KeyEvent.VK_Y); robot.delay(200); robot.keyPress(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_S); robot.delay(200); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(200); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_SLASH); robot.keyRelease(KeyEvent.VK_ALT); robot.keyRelease(KeyEvent.VK_SLASH); robot.delay(500); //输入双引号 robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_QUOTE); robot.keyRelease(KeyEvent.VK_SHIFT); robot.keyRelease(KeyEvent.VK_QUOTE); //输入HelloWorld robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(500); robot.keyPress(KeyEvent.VK_H); robot.keyRelease(KeyEvent.VK_H); robot.delay(200); robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_E); robot.keyRelease(KeyEvent.VK_E); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(200); robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_W); robot.keyRelease(KeyEvent.VK_W); robot.delay(200); robot.keyPress(KeyEvent.VK_CAPS_LOCK); robot.keyRelease(KeyEvent.VK_CAPS_LOCK); robot.delay(200); robot.keyPress(KeyEvent.VK_O); robot.keyRelease(KeyEvent.VK_O); robot.delay(200); robot.keyPress(KeyEvent.VK_R); robot.keyRelease(KeyEvent.VK_R); robot.delay(200); robot.keyPress(KeyEvent.VK_L); robot.keyRelease(KeyEvent.VK_L); robot.delay(200); robot.keyPress(KeyEvent.VK_D); robot.keyRelease(KeyEvent.VK_D); robot.delay(200); //ctrl+shift+F 格式化 robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_F); robot.keyRelease(KeyEvent.VK_SHIFT); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_F); //ctrl+S保存 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_CONTROL); //F11运行 robot.keyPress(KeyEvent.VK_F11); robot.keyRelease(KeyEvent.VK_F11); } }
相关文章推荐
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- java Robot 类模拟键盘按键和鼠标点击(全局模拟)
- setClickable 设置为true时,表明控件可以点击,如果为false,就不能点击;“点击”适用于鼠标、键盘按键、遥控器等; 注意,setOnClickListener方法会默认把控件的se
- Java 实现全局(全操作系统)的键盘鼠标模拟
- 用应用程序模拟键盘和鼠标按键
- 用Delphi模拟键盘输入/鼠标点击
- [置顶] 全局模拟window键盘消息和鼠标消息
- 全能自动点击王 包含数据采集-刷票-post机-后台鼠标键盘模拟-验证码识别
- C# webbrowser文本框的键盘和鼠标模拟输入和模拟鼠标点击
- 【Android】代码实现模拟屏幕点击和键盘按键事件
- Python实现windows下模拟按键和鼠标点击的方法
- 【Android】代码实现模拟屏幕点击和键盘按键事件
- 用应用程序模拟键盘和鼠标按键【转】
- Python实现windows下模拟按键和鼠标点击的方法
- 远程控制篇:用Delphi模拟键盘输入/鼠标点击
- 计划:写一个统计鼠标点击次数,滑动距离,键盘按键次数的软件
- 【Chrome-crx】键盘模拟鼠标点击网页按钮
- Python在windows下模拟按键和鼠标点击代码