使用java.awt.Robot实现java版的自动点击事件

简介: 使用java.awt.Robot实现java版的自动点击事件


  • 介绍:

最近遇到了一个需要人工点击的事情,很麻烦,于是找了一下资料,写了一个自动的鼠标点击的程序

使用的包:

java.awt.Robot

具体的代码

Robot robot = new Robot();

  • //第一步,首先选择需要处理的类53\38

robotTest.clickMouse(robot, 310, i, times);//

robot.delay(500);


该代码的主要功能是鼠标进行点击屏幕上面的像素点;

  • 第二步:关键方法:

robot.mouseMove(x, y);//鼠标的移动像素点,用于由于软件不能很敏感的识别鼠标的情况下使用的

robot.delay(times);

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.delay(delay);

robot.mouseRelease(InputEvent.BUTTON1_MASK);

robot.delay(delay);


  • 第三步:整个全部的代码:

import java.awt.AWTException;

import java.awt.Robot;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

 

 

/**

* @author

* @date

* <p>description:Robot测试类,</p>

*/

public class robotTest {

 

   private static int times=250;

 

   public robotTest() {

       super();

   }

 

   public static void main(String[] args) {

 

       int i = 113;

       while (i < 950) {

           try {

               Robot robot = new Robot();

               //第一步,首先选择需要处理的类53\38

               robotTest.clickMouse(robot, 310, i, times);//

               robot.delay(500);

 

               //鼠标点击文件的位置

//                robotTest.clickMouse(robot, 756, 250, 500);

               robotTest.clickMouse(robot, 563, 273, times);

               robot.delay(500);

               //第二步,点击菜单里面的code,然后选择generate

               //鼠标移动到坐标(635,454)

               robotTest.clickMouse(robot, 196, 34, times);

               robot.delay(500);

               //第三步,选择code里面的generate

               //鼠标移动到坐标(635,454)

               robotTest.clickMouse(robot, 290, 117, times);

               robot.delay(500);

 

               //第四步,选择generate里面的tostring方法

               //鼠标移动到坐标=文件的位置x+53,y+38

//                robot.mouseMove(836, 292);

//                robot.mouseMove(810, 290);

               robot.mouseMove(616, 311);

               robot.mousePress(InputEvent.BUTTON1_MASK);

               //移动到tistring健

//                robotTest.clickMouse(robot, 810, 393, 500);

               robotTest.clickMouse(robot, 616, 411, times);

               robot.delay(500);

               //第四步,选择tostring方法里面的ok健

               //鼠标移动到坐标(635,454)

               robotTest.clickMouse(robot, 840, 771, times);

               robot.delay(500);

 

               //

               robotTest.clickMouse(robot, 1217, 475, times);

               robot.delay(500);

 

               robotTest.clickMouse(robot, 1067, 475, times);

               robot.delay(times);

               i=i+20;

 

           } catch (AWTException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

       }

 

   }

 

   public static void pressKey(Robot robot, int[] keys, int delay) {

       for (int i = 0; i < keys.length; i++) {

           robot.keyPress(keys[i]);

           robot.keyRelease(keys[i]);

           robot.delay(times);

       }

       //处理完需要延迟

       robot.delay(delay);

   }

 

   public static void clickMouse(Robot robot, int x, int y, int delay) {

//        robot.mouseMove(x, y);

       robot.mouseMove(x, y);

       robot.delay(times);

       robot.mousePress(InputEvent.BUTTON1_MASK);

       robot.delay(delay);

       robot.mouseRelease(InputEvent.BUTTON1_MASK);

       robot.delay(delay);

   }

}

  • 总结:

很多的时候,频繁的重复的鼠标点击工作,可以写一个小程序来处理,避免多余的人工浪费;但是

在开发的时候,还是需要频繁的调整一下延时或者移动鼠标等事件,避免屏幕识别出来,是程序在跑的;

相关文章
|
Java
Java 实现汉字按照首字母分组排序
Java 实现汉字按照首字母分组排序
687 0
|
Java 数据安全/隐私保护
JAVA 实现上传图片添加水印(详细版)(上)
JAVA 实现上传图片添加水印(详细版)
1202 0
JAVA 实现上传图片添加水印(详细版)(上)
|
网络协议 Java
Java网络编程:UDP/TCP实现实时聊天、上传图片、下载资源等
ip地址的分类: 1、ipv4、ipv6 127.0.0.1:4个字节组成,0-255,42亿;30亿都在北美,亚洲就只有4亿 2011年就用尽了。
Java网络编程:UDP/TCP实现实时聊天、上传图片、下载资源等
|
Java
Java实现拼图小游戏(7)——查看完整图片(键盘监听实例2)
由于在移动和图片中我们已经添加了键盘监听,也继承了键盘监听的接口,那么我们只需要在重写方法内输入我们的代码即可
207 0
|
存储 Java
Java实现图书管理系统
本篇文章是对目前Java专栏已有内容的一个总结练习,希望各位小主们在学习完面向对象的知识后,可以阅览本篇文章后,自己也动手实现一个这样的demo来加深总结应用已经学到知识并进行巩固。
405 0
Java实现图书管理系统
|
数据可视化 Java
Java实现拼图小游戏(1)—— JFrame的认识及界面搭建
如果要在某一个界面里面添加功能的话,都在一个类中,会显得代码难以阅读,而且修改起来也会很困难,所以我们将游戏主界面、登录界面、以及注册界面都单独编成一个类,每一个类都继承JFrame父类,并且在类中创建方法来来实现页面
527 0
Java实现拼图小游戏(1)—— JFrame的认识及界面搭建
|
数据可视化 Java 容器
Java实现拼图小游戏(7)—— 计步功能及菜单业务的实现
注意由于我们计步功能的步数要在重写方法中用到,所以不能将初始化语句写在方法体内,而是要写在成员位置。在其名字的时候也要做到“见名知意”,所以我们给它起名字为step
310 0
Java实现拼图小游戏(7)—— 计步功能及菜单业务的实现
|
Java
Java实现拼图小游戏(7)—— 作弊码和判断胜利
当我们好不容易把拼图复原了,但是一点提示也没有,完全看不出来是成功了,那么我们就需要有判断胜利的功能去弹出“成功”类的图片,以便于玩家选择是重新开始还是退出小游戏
291 0
Java实现拼图小游戏(7)—— 作弊码和判断胜利
|
Java
Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)
当我们实现向上移动图片的时候,其实就是把空图片的下面一张图片往上移动,然后将空图片的下面那张图片设置为空图片,最后再调整初始位置为现在空图片所在位置即可,注意做完这些以后还要再加载图片,否则显示不出来
369 0
Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)
|
存储 Java 数据库
JAVA实现网络多线程编程小游戏开发
实验总结:五子棋是一个很简单的游戏,但是如果认真对待,一个代码一个代码的去研究,会收获到很多知识,会打好学习基础。方便以后开发更高、更难的项目时打下稳固的基础。在自己开发的过程中会有各种意想不到的bug,通过查阅资料及询问老师同学进行解决对本身的一个代码能力会有一个质的增长,同时这也是一个非常快乐的过程。有进步,总归是好事。
JAVA实现网络多线程编程小游戏开发