java实现模拟鼠标键盘操作

简介: 用java写脚本,首先需要用到Robot类 ,也就是机器人类。先new一个Robot对象然后调用里面的方法 ,keyPress方法是按下键盘上的某个键,比如下面代码里面写的

用java写脚本,首先需要用到Robot类 ,也就是机器人类。先new一个Robot对象然后调用里面的方法 ,keyPress方法是按下键盘上的某个键,比如下面代码里面写的keyPress(KeyEvevt.VK_Y); 括号里面VK后面的字母就是要按下的键,然后按下了需要弹起,在调用keyRelease方法,参数不变。


其次为了更像人,可以在按下弹起之间添加一个间隔时间,调用delay方法,参数是毫秒值。在第一个键跟第二个键之间也添加一个间隔时间,可以用Random类里面的nextInt方法生成随机数然后用Math类里面的abs方法取绝对值再设置范围,设置范围的话以下面第一个代码为例子,Math.abs(random.nextInt())%100+50;与100进行取模运算结果是一百以内,然后在加上50,结果就是50到100毫秒之间。


鼠标操作同样是调用Robot类的方法,mouseMove()方法是移动鼠标到指定坐标点,参数有两个,分别是横坐标个纵坐标。


mousePress(InputEvent.BUTTON1_DOWN_MASK)方法是按下鼠标左键,按下鼠标右键和滚轮只需要把参数里面的BUTTON后面的1改成2和3即可,2是按下滚轮,3是按下鼠标右键。


mouseRelease(InputEvent.BUTTON1_DOWN_MASK)鼠标抬起方法。


下面有两个例子:


这个是一个自从打字并发送消息的脚本。在循环最后是按下了空格和回车键,是键入文字然后发送的功能。


这个功能可以用在某些游戏里面 ,因为是通过jvm发送请求给键盘并且加入了随机停顿所以不会检测到是外挂。

public static void main(String[] args) throws AWTException {
    Robot robot = new Robot();
    Random random = new Random();
    robot.delay(5000);
    int a = 0;
    while(true) {
      robot.keyPress(KeyEvent.VK_Y);
      robot.keyRelease(KeyEvent.VK_Y);
      a = Math.abs(random.nextInt())%100+50;
      robot.delay(a);
      robot.keyPress(KeyEvent.VK_B);
      robot.keyRelease(KeyEvent.VK_B);
      a = Math.abs(random.nextInt())%100+50;
      robot.delay(a);
      robot.keyPress(KeyEvent.VK_Q);
      robot.keyRelease(KeyEvent.VK_Q);
      a = Math.abs(random.nextInt())%100+50;
      robot.delay(a);
      robot.keyPress(KeyEvent.VK_U);
      robot.keyRelease(KeyEvent.VK_U);
      robot.keyPress(KeyEvent.VK_SPACE);
      robot.keyRelease(KeyEvent.VK_SPACE);
      robot.keyPress(KeyEvent.VK_ENTER);
      robot.keyRelease(KeyEvent.VK_ENTER);
      a = Math.abs(random.nextInt())%2000+1000;
      System.out.println(a);
      robot.delay(a);
    }
  }

移动鼠标到指定坐标位置并点击鼠标左键的动作:

public static void main(String[] args) throws AWTException {
    Robot robot = new Robot();
    Random random = new Random();
    int a = 0;
    robot.delay(3000);
    robot.mouseMove(1200, 700);
    a = Math.abs(random.nextInt())%100+50;
    robot.delay(a);
    robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
    a = Math.abs(random.nextInt())%50+50;
    robot.delay(a);
    robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
  }
相关文章
|
1月前
|
存储 Java 数据处理
|
19天前
|
Java
java_键盘录入、随机数
本文介绍了Java中键盘录入和Random类的使用。键盘录入用于从用户那里获取数据,通过导入`java.util.Scanner`,创建`Scanner`对象,调用`nextInt()`或`nextDouble()`读取整数和小数,`next()`读取字符串。Random类用于生成随机整数,导入该类后创建对象,调用`nextInt(int bound)`生成[0, bound-1]范围内的随机数。在JDK17及以上版本,可以使用`nextInt(int start, int end)`生成[start, end)范围的随机数。常见应用包括猜数字游戏和随机点名。
13 0
|
3月前
|
消息中间件 Java
Java操作RabbitMQ单一生产-消费者模式
Java操作RabbitMQ单一生产-消费者模式
31 0
|
2天前
|
数据采集 前端开发 测试技术
《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
【4月更文挑战第23天】本文介绍了网页中的滑动验证码的实现原理和自动化测试方法。作者首先提到了网站的反爬虫机制,并表示在本地创建一个没有该机制的网页,然后使用谷歌浏览器进行验证。接着,文章详细讲解了如何使用WebElement的click()方法以及Action类提供的API来模拟鼠标的各种操作,如右击、双击、悬停和拖动。
6 2
|
3天前
|
Web App开发 数据采集 Java
《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)
【4月更文挑战第22天】本文介绍了在测试过程中可能会用到的两个功能:Actions类中的拖拽操作和划取字段操作。拖拽操作包括基本讲解、项目实战、代码设计和参考代码,涉及到鼠标按住元素并将其拖动到另一个元素上或指定位置。划取字段操作则介绍了如何在一段文字中随机选取一部分,包括项目实战、代码设计和参考代码。此外,文章还提到了滑动验证的实现,并提供了相关的代码示例。
32 2
|
20天前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
20 2
|
1月前
|
自然语言处理 Java
这是什么操作?java中的变量竟然可以先使用后声明?
这是什么操作?java中的变量竟然可以先使用后声明?
14 0
|
1月前
|
SQL Java
使用java中的String类操作复杂的字符串
使用java中的String类操作复杂的字符串
9 0
|
1月前
|
Java
java操作字符串
java操作字符串
9 1
|
1月前
|
SQL Java 关系型数据库
Java查询操作
Java查询操作
9 0