Robot类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。

使用该类生成输入事件与将事件发送到 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 类模拟键盘按键和鼠标点击(全局模拟)相关推荐

  1. 模拟键盘按键、鼠标单击功能发布(可发送快捷键、热键、鼠标左键多次单击)—— 定时执行专家

    目录 ◆ 定时执行专家 -- 模拟键盘按键 ◆ 定时执行专家 -- 模拟鼠标单击 ◆ 定时执行专家 -- 模拟键盘按键 - 设置方法 (1)点击 "定时执行专家" 工具栏 &quo ...

  2. VC+API模拟键盘按键(详解篇)

    模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...

  3. 模拟键盘按键---很经典,总结很全面

    http://www.cnblogs.com/Jnshushi99/archive/2011/09/03/2164617.html 模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前 ...

  4. linux模拟键盘按键方案(收藏)

    linux模拟键盘按键方案(收藏) 在这以前,我一直以为,除非搞X Window级别的开发,否则根本没法在Linux下模拟键盘消息,或者说键盘事件.像QT,GTK这些High Level的GUI li ...

  5. Python——实现网页模拟键盘输入和鼠标点击

    Python--实现网页模拟键盘输入和鼠标点击 一.安装selenium库 1.1 win+R打开输入窗口 1.2 输入cmd,点击确定 1.3 输入代码: 二.以谷歌浏览器为例,配置环境 2.1打开 ...

  6. 模拟键盘按键 自动输入文字

    模拟键盘按键 自动输入文字 键盘对于每个操作电脑的人员来说是最熟悉不过的了.键盘上的按键可分为两类 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键:按下后虽然看不到 ...

  7. linux c实现键盘模拟,C++模拟键盘按键的实例

    这个与模拟鼠标点击的函数差不多,直接上函数 keybd_event(VK_RETURN,0,0,0); keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); 这是模拟 ...

  8. golang实现模拟键盘按键

    Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.GO优点 1.学习曲线容易 2.效率:快速的编译时间,开发效率和运行效率高 3.自由高效:组合的思想.无侵入式的接口 4.强大的标 ...

  9. C/C++使用keybd_event模拟键盘按键

    1 #include <stdio.h> 2 #include <Windows.h> 3 4 /* 5 设置键盘大小写状态 6 big:为TRUE则切换大写状态,否则切换小写 ...

最新文章

  1. 第 5 章 Nova - 025 - OpenStack 通用设计思路
  2. 第九课.朴素贝叶斯分类器
  3. HBase源代码分析之MemStore的flush发起时机、推断条件等详情(二)
  4. hibernate继承关系映射方法(三)--每个具体类一张表TPC
  5. 大数据WEB阶段Spring框架(一)IOC控制反转、DI注入依赖
  6. Duilib实现圆形头像控件
  7. 分布式系统Quorum机制
  8. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
  9. 论文解读 | 智能数据库的最新动态
  10. linux防火墙能阻止cc攻击吗,linux csf 防火墙 防止少量的ddos cc攻击很有效
  11. 自己动手写操作系统2011040101
  12. RHCE实验环境虚拟机下载及注意事项
  13. freenas 蜗牛星际_从“白群晖”到“蜗牛星际”,到底哪种NAS方案适合我?
  14. 飞天特效腾云驾雾特效手机软件制作特效视频的教程
  15. python语音聊天_语音聊天实现
  16. Matlab画图,坐标轴范围设置和间隔设置
  17. python实验报告代写_vector data作业代写、python程序设计作业调试、代做python实验作业、代写OGR python作业代做Python程序|代写Web开发...
  18. 程序员叫啥名字_网友:什么是好程序员?腾讯员工:首先起个“配”自己的网名!...
  19. 《中文文本信息抽取模型与方法研究》5:基于论元结构的事件要素及其角色识别
  20. 这些Word小技巧,你知道吗?

热门文章

  1. Android 开机启动shell脚本
  2. 【现代密码学原理】——高级加密标准AES(学习笔记)
  3. iOS VR AR MR 简介
  4. ssm+jsp计算机毕业设计街舞工作室管理系统wt2k6(程序+lw+源码+远程部署).
  5. 计算机毕业设计ssm力高灯饰线上交易平台4d59n系统+程序+源码+lw+远程部署
  6. 2021-12-6 学习的打卡学习第十四天(推箱子开始界面)
  7. java xmn_Java JVM 参数 -Xms -Xmx -Xmn -Xss调优总结
  8. Spring-Boot 拦截器
  9. python的json loads用法_json.loads是干嘛的?简单阐述json.loads python的用法
  10. java int取高位8bit_byte解析,取高位与低位