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+s
        robot.keyPress(KeyEvent.VK_S);
        robot.keyRelease(KeyEvent.VK_S);
        robot.keyRelease(KeyEvent.VK_CONTROL); // 模拟释放 ctrl+s
    }
}

感谢小伙伴们看完,奥利给!!!
图片

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

  • 32
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值