Java里鲜为人知的“机器人”类库
小伙伴们,大家好,今天锋哥来给大家介绍下Jdk里很少用到的一个“机器人”类库-Robot。
RoBot简介
Java中Robot类位于java.awt.Robot,该类用于为测试自动化,自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,Robot类的主要目的是便于Java平台实现自动测试。
Robot可以模拟鼠标和键盘的输入,相当于Java版的按键精灵。
核心就是自动化;
Robot在我工作中的应用
我这边有个应用案例,给大家看看;
我几年前开始搞在线教育的时候,录制了很多视频,基础课程全免费,我比较穷,没钱,就用免费基础课程给自己引流,打打广告,然后项目实战课程就是收费的,人性不可揣测,所以视频必须加密,因为我课程也单卖,也可以vip一起卖,所以一个课程对应一个密码,开始有几个课程还好,我人工搞,一个一个生成,后来懵逼了,课程10几个,一个一个生成,还得3,4分钟,有时候还搞错。
所以想办法解决这个问题,第一个是请人工搞,要花钱,第二个就是用程序帮我干这种死活。
最终找到了jdk里的Robot类库,自己代码功底可以,干了1小时,就写完了代码,测试下,爽死;
涉及一些个人搞事隐私,所以GIF画质模糊点,大家请担当。
Robot技术文档介绍
学习使用的话,大家要结合Jdk API文档;
(我这边就截图偷懒下,懒得调整格式)
类介绍
构造方法摘要和方法摘要
键盘上的每一个键,都可以通过KeyEvent的常量来标识:
Robot入门案例
最后锋哥给出一个入门案例,大家可以学习体验下:
实现功能
用Robot模拟双击打开一个指定位置的文本文件,
然后文本里输入一段文字,
最后模拟用户保存文件。
实现效果
实例代码
package com.java1234;import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;/*** @author java1234_小锋* @site www.java1234.com* @company Java知识分享网* @create 2021-06-07 18:30*/
public class Test {private final static int x=38; // x坐标private final static int y=38; // y坐标private final static int []keys={ // 输入字母KeyEvent.VK_J,KeyEvent.VK_A,KeyEvent.VK_V,KeyEvent.VK_A,KeyEvent.VK_1,KeyEvent.VK_2,KeyEvent.VK_3,KeyEvent.VK_4,KeyEvent.VK_SPACE,KeyEvent.VK_N,KeyEvent.VK_I,KeyEvent.VK_U,KeyEvent.VK_B,KeyEvent.VK_I,KeyEvent.VK_L,KeyEvent.VK_I,KeyEvent.VK_L,KeyEvent.VK_T,KeyEvent.VK_Y};public static void main(String[] args) throws Exception{Robot robot = new Robot(); // new一个机器人// 模拟双击打开一个指定位置的文本文件robot.mouseMove(38,38); // 模拟移动鼠标到指定位置robot.delay(100); // 休息0.1秒robot.mousePress(InputEvent.BUTTON1_MASK); // 模拟双击打开文本文件robot.mouseRelease(InputEvent.BUTTON1_MASK);robot.mousePress(InputEvent.BUTTON1_MASK);robot.mouseRelease(InputEvent.BUTTON1_MASK);robot.delay(1000); // 休息0.1秒// 模拟输入文字for(int i=0;i<keys.length;i++){robot.keyPress(keys[i]);robot.keyRelease(keys[i]);robot.delay(100);}// 模拟保存robot.delay(1000); // 休息0.1秒robot.keyPress(KeyEvent.VK_CONTROL); // 模拟 ctrl+srobot.keyPress(KeyEvent.VK_S);robot.keyRelease(KeyEvent.VK_S);robot.keyRelease(KeyEvent.VK_CONTROL); // 模拟释放 ctrl+s}
}
感谢小伙伴们看完,奥利给!!!
微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。
Java里鲜为人知的“机器人”类库相关推荐
- 从java里调用r jri的设置方法_从Java里调用R – JRI的设置方法
JRI允许用户从Java里面调用R的功能,而Eclipse是目前最常用的Java开发环境.本文介绍在Eclipse里设置JRI的方法. 环境: Windows 7 32bit Eclipse 3.6 ...
- 从Java里调用R – JRI的设置方法
JRI允许用户从Java里面调用R的功能,而Eclipse是目前最常用的Java开发环境.本文介绍在Eclipse里设置JRI的方法. 环境: Windows 7 32bit Eclipse 3.6 ...
- java里的日期时间
为了更好理解java的日期时间类,在这里我们先介绍一下关于历法.标准时间的一些概念. 历法有很多种,我们大中华上下五千年,自然也有自己的历法,生活中我们通常把自己传统的历法叫做农历,也有人叫它阴历或夏 ...
- QQRobot一款基于Java的娱乐qq机器人
QQRobot一款基于Java的娱乐qq机器人 git地址:https://gitee.com/tysong1/QQRobot/tree/master AD:上QQ群214580864购买服务器享优惠 ...
- 16从零开始学Java之Java里的输入与输出语句有哪些?
作者:孙玉昌,昵称[一一哥],另外[壹壹哥]也是我哦 CSDN博客专家.万粉博主.阿里云专家博主.掘金优质作者 配套项目资料 https://github.com/SunLtd/LearnJava h ...
- 微信公众号后台java开发实现自动回复机器人
1.注册微信公众号.(简单) 2.注册图灵机器人.(自己百度) 1)注册后可以拿到key (注意 api接入里的钥匙不要打开,否则要加解密,麻烦) 3.配置微信公众号服务器验证. 1)在开发的基本 ...
- Java 利用钉钉机器人发送消息并艾特指定人
钉钉机器人发送消息 1.引入钉钉机器人到钉钉群 2.利用群里钉钉机器人的webHook发送钉钉消息 根据webHook 我们可以看出,通过机器人发送钉钉消息,实际上就是一个http请求,事实上,所有的 ...
- java对接企业微信机器人发送消息
[Java]企业微信机器人自动发送群消息 先在群里添加机器人,然后获取机器人的webhook地址: 假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/web ...
- Java 里的 for (;;) 与 while (true),哪个更快?
点击关注公众号,Java干货及时送达 在JDK8u的jdk项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr " ...
最新文章
- System.Web.Optimization找不到引用
- 汇编语言--通用寄存器
- windows下用GCC编译DLL
- Tensorflow broadcast 广播机制
- 带你了解线缆、WIFI、以太网协议和网络寻址
- 将宽度赋给高度_人生应知长度、懂宽度、有高度
- 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication
- Java微服务:蛋糕是骗人的,但您不能忽略它
- java date只保留年月日_java.util.Date、java.sql.Date、java.sql.Timestamp区别和总结
- linux centeros下Redis的安装
- 关于SQL92标准和Sybase,SQLServer2000,Oracle的数据类型对比关系
- 运用C#创建一个.Net下的Web Service
- userdel: user user is currently used by process 18752解决办法
- 离线数仓DIM层和DWD层,联表后表和字段命名规则
- 50道必备的Python面试题 (建议点赞)
- C++简单程序典型案例
- 基于百度地图API在AI Studio上的卫星地图块图像处理与分类
- linux系统中vi/vim文本编辑器的使用简介
- 力扣(LeetCode)剑指offer刷题笔记(java),已完结!!!
- android 父控件的背景_android控件的属性
热门文章
- 转生活中的各种食品安全问题
- idea突然打不开了
- 【Linux】工作中常用的linux命令
- fn映射 mac 键盘_Mac 学习笔记(五)键位映射
- 什么是数字化存在?数字化转型要先从数字化存在开始
- git 解决冲突后提交 fatal: cannot do a partial commit during a merge.
- php开发商城系统怎么样?有哪些PHP开源商城系统推荐?
- 【bzoj4864】[BeiJing 2017 Wc]神秘物质 Splay
- 【Web技术】919- 前端关于单点登录的知识
- 爬虫python代码网易云_爬虫实战(二) 用Python爬取网易云歌单