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的例子:

package autoHelloWorld;

import java.awt.Robot;
import java.awt.event.KeyEvent;

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);  
  
 } 
}

自动点击触发事件(自动按下释放键盘上某个键)相关推荐

  1. c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2

    c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 原文:c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 ...

  2. python实现软件自动点击_鼠标自动点击、键盘自动输入?几行Python代码搞定

    第一步:安装并导入相关模块 只需要安装PyUserInput,如下:pip install PyUserInput 如果你是Win10系统,肯定会报错,具体怎么解决,我放在文章结尾讲,先把主要思路讲完 ...

  3. 小程序banner广告点击触发事件技术

    现如今,小程序是遍布各大平台(微信,QQ,百度,抖音...),随着小程序的增多,流量也显得越来越珍贵,买量的钱是越来越多,除去靠小程序业务营收的(如商城)和靠小程序服务营收的(外卖,服务等),很大部分 ...

  4. 键盘上哪个键是插入建_如何在没有插入键的情况下按键盘上的“插入”?

    键盘上哪个键是插入建 Finding a keyboard that has all the features you want can be a bit of a task at times, bu ...

  5. Unity实现在Android或IOS端点击【InputField】输入框弹出键盘上的内容默认处于选中状态

    Unity实现在Android或IOS端点击[InputField]输入框弹出键盘上的内容默认处于选中状态 最终效果如: 上代码 using UnityEngine.EventSystems;/// ...

  6. js按钮触发网页提醒_jquery,js页面加载时自动点击触发jq按钮-Go语言中文社区

    jq加载时自动执行事件需要这样写 $(function(){ $('.signinpanel').hide();//加载时,隐藏一个元素 }) jq加载页面时自动点击按钮,则 按钮 function ...

  7. python按键盘上哪个键运行_python通过按下键盘特定按键,开始运行python文件

    一.目的 通过按下键盘特定按键,开始运行python文件 二.code from pykeyboard import PyKeyboardEvent from pykeyboard import * ...

  8. 百度地图Mark 点自动点击 触发mark点击事件

    this.map.getOverlays() //这个是获取mark点的集合 可以打印出来看一下 然后直接结果 //下面这行是触发点击事件的代码!!!this.map.getOverlays()[0] ...

  9. 鼠标点击触发事件python_如何在鼠标按下的情况下触发tkinter的“Enter”事件?...

    在tkinter with Python3.7中,事件绑定的默认行为是在释放鼠标之前单击鼠标后不会触发"&lt:Enter&gt:"事件.我打算实现一个可滚动表,这 ...

最新文章

  1. 我第一次接私活,就被骗了···
  2. 网吧无盘服务器从30台----115台的经验(二)
  3. 【Linux高频命令专题(24)】grep
  4. 实战并发编程 - 02解决并发问题常用套路
  5. 前端之JavaScript第一天学习(1)-JavaScript 简介
  6. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)
  7. Ubuntu下安装pip
  8. Git Permission to fazhiyun86/Test.git denied to MarRoar
  9. Codewars-parseInt() reloaded(实现英文单词和数字的转换)
  10. Python疑难问题:「」与list()哪个快?为什么快?
  11. 《转》武​汉​的​I​T​公​司
  12. 学习 ASP.NET MVC (第五回)理论篇
  13. 什么是依赖,什么是抽象
  14. html5调用系统声音1s响一次_为你的html5网页添加音效示例
  15. Android开发CompoundButton抽象类控件类的使用UI之Radio、Check、Toggle
  16. Spring Cloud 集成 euraka-server 和 euraka-client
  17. 笔记本电脑亮度调节键失灵了,该怎么解决?
  18. js打印html表格内容,js实现简单的打印表格
  19. 计算机防火墙知识点,防火墙及防火墙的基本概念-信息安全工程师知识点
  20. 滁州市化工厂人员定位系统——苏州新导智能科技,技术精湛,定位精确

热门文章

  1. 2022年 绩效变革管理规划的5个步骤
  2. 华为分布式存储(FusionStorage)
  3. Java开源项目:saas小程序商城(SpringCloud + Oauth2.0 + ShiroRedis + JWT + Gateway + Nacos + Nginx+Vue+Mysql)
  4. Python笔记002-Python编程基础概念
  5. SonicWall端口映射
  6. 怎么升级计算机内存容量,如何升级电脑内存容量(升级电脑内存的方法介绍)...
  7. 绑定内联样式 :style
  8. 读书笔记5.5——《让数字说话:审计,就这么简单》:孙含晖
  9. 端口被占用?两步解决端口占用问题
  10. 基于flv.js的视频自动播放