zoukankan      html  css  js  c++  java
  • JAVA操作鼠标和键盘

    用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);
    		}
    	}
    

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

    import java.awt.*;
    import java.util.*;
    import java.awt.event.InputEvent;
    
    public class mouse{
        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);
            }
    }
    转自:https://www.cnblogs.com/MAOCE/p/13867534.html
  • 相关阅读:
    PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)
    PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)
    PAT (Advanced Level) Practice 1028 List Sorting (25 分) (自定义排序)
    PAT (Advanced Level) Practice 1035 Password (20 分)
    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)
    PAT (Advanced Level) Practice 1120 Friend Numbers (20 分) (set)
    从零开始吧
    Python GUI编程(TKinter)(简易计算器)
    PAT 基础编程题目集 6-7 统计某类完全平方数 (20 分)
    PAT (Advanced Level) Practice 1152 Google Recruitment (20 分)
  • 原文地址:https://www.cnblogs.com/javalinux/p/14819112.html
Copyright © 2011-2022 走看看