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

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

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

如果本文帮助到了你,别忘了点赞加关注哦

你点的每个赞,我都认真当成了喜欢

  • 35
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿演

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值