Java里鲜为人知的“机器人”类库

小伙伴们,大家好,今天锋哥来给大家介绍下Jdk里很少用到的一个“机器人”类库-Robot。
Java里鲜为人知的“机器人”类库_第1张图片

RoBot简介

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

Robot可以模拟鼠标和键盘的输入,相当于Java版的按键精灵。
Java里鲜为人知的“机器人”类库_第2张图片
核心就是自动化;
Java里鲜为人知的“机器人”类库_第3张图片

Robot在我工作中的应用

我这边有个应用案例,给大家看看;


我几年前开始搞在线教育的时候,录制了很多视频,基础课程全免费,我比较穷,没钱,就用免费基础课程给自己引流,打打广告,然后项目实战课程就是收费的,人性不可揣测,所以视频必须加密,因为我课程也单卖,也可以vip一起卖,所以一个课程对应一个密码,开始有几个课程还好,我人工搞,一个一个生成,后来懵逼了,课程10几个,一个一个生成,还得3,4分钟,有时候还搞错。

Java里鲜为人知的“机器人”类库_第4张图片
所以想办法解决这个问题,第一个是请人工搞,要花钱,第二个就是用程序帮我干这种死活。
Java里鲜为人知的“机器人”类库_第5张图片
最终找到了jdk里的Robot类库,自己代码功底可以,干了1小时,就写完了代码,测试下,爽死;

涉及一些个人搞事隐私,所以GIF画质模糊点,大家请担当。

Robot技术文档介绍

学习使用的话,大家要结合Jdk API文档;
(我这边就截图偷懒下,懒得调整格式)

类介绍
Java里鲜为人知的“机器人”类库_第6张图片

构造方法摘要和方法摘要
Java里鲜为人知的“机器人”类库_第7张图片
键盘上的每一个键,都可以通过KeyEvent的常量来标识:

Robot入门案例

最后锋哥给出一个入门案例,大家可以学习体验下:
Java里鲜为人知的“机器人”类库_第8张图片
实现功能
用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
    }
}

感谢小伙伴们看完,奥利给!!!
Java里鲜为人知的“机器人”类库_第9张图片

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

你可能感兴趣的:(java,java,RoBot,java自动化,机器人)