java Robot-控制键盘鼠标自动输入用户名密码登录

今天翻翻以前写过的娱乐的代码忽然看到个好玩的,今天这里分享一下。
java Robot 翻译过来就是java机器人的意思,能控制下鼠标啊键盘啊进行一些操作,先简单介绍一下robot的方法:

robot.createScreenCapture(screenRect);//创建包含从屏幕读取的像素的图像。
robot.delay(ms);//睡眠指定的时间。
robot.getPixelColor(x, y)//返回给定屏幕坐标处像素的颜色。
robot.isAutoWaitForIdle();//返回此机器人waitForIdle 在生成事件后是否自动调用。
robot.keyPress(keycode);//按一个给定的键。
robot.keyRelease(keycode);//释放给定的键。
robot.mouseMove(x, y);//将鼠标指针移动到给定的屏幕坐标。
robot.mousePress(buttons);//按下一个或多个鼠标按钮。
robot.mouseRelease(buttons);//释放一个或多个鼠标按钮。
robot.mouseWheel(wheelAmt);//旋转装有滚轮的鼠标上的滚轮。
robot.setAutoDelay(ms);//设置此机器人在生成事件后休眠的毫秒数。
robot.setAutoWaitForIdle(isOn);//设置此机器人waitForIdle 在生成事件后是否自动调用。

下面分享一段使用robot输入帐号密码实现登录邮箱的一段代码:

		Robot ro = new Robot();
		//获取屏幕分辨率
		int screenWidth=((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().width);
		int screenHeight = ((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().height);
		System.out.println("屏幕分辨率宽为:"+screenWidth+",高为:"+screenHeight);
		int moveScreenWidth= (int) (screenWidth -( (int)screenWidth * (0.5)));
		int movescreenHeight= (int) (screenHeight - ((int)screenHeight * (0.70)));
		System.out.println("yidong屏幕分辨率宽为:"+moveScreenWidth+",高为:"+movescreenHeight);

我这里简单计算了下帐号的输入框在屏幕上显示的坐标,当然也可以根据颜色等等去获取,全凭个人喜好和想法。(int)screenWidth * (0.5),整数和double乘除尽量不这么写,图个简便这里不详细介绍。

		//将鼠标移动到
		ro.mouseMove(moveScreenWidth, movescreenHeight);
		//双击鼠标左键
		ro.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
		ro.mousePress(KeyEvent.BUTTON1_DOWN_MASK);

至于为什么双击下鼠标左键,这里说一下,主要是因为浏览器的浏览记录哈,如果登陆过这个网站并且保存过用户,输入框会有你的账号,如果不删除直接输入明显会报错的,双击会把输入框里的账号选中,输入框是空的也没关系

		//将账号放置到剪切板中
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
		clipboard.setContents(new StringSelection("账号"), null); 
		//ctrl+V  粘贴
		ro.keyPress(KeyEvent.VK_CONTROL); 
		ro.delay(100);
		ro.keyPress(KeyEvent.VK_V); 
		ro.keyRelease(KeyEvent.VK_V); 
		ro.delay(100);
		ro.keyRelease(KeyEvent.VK_CONTROL);
		ro.delay(300);

每个键用完一定要记得释放!!!

		//按下然后释放table键
		ro.keyPress(KeyEvent.VK_TAB);
		ro.keyRelease(KeyEvent.VK_TAB);
		ro.delay(100);
		clipboard.setContents(new StringSelection("密码"), null); 
		ro.delay(100);
		ro.keyPress(KeyEvent.VK_CONTROL); 
		ro.keyPress(KeyEvent.VK_V); 
		ro.delay(100);
		ro.keyRelease(KeyEvent.VK_V); 
		ro.keyRelease(KeyEvent.VK_CONTROL);
		ro.delay(100);
		//单机回车 随后释放回车键  如果回车登录没反应移动鼠标点击
		ro.keyPress(KeyEvent.VK_ENTER);
		ro.keyRelease(KeyEvent.VK_ENTER);

这就是一个简单的小操作。KeyEvent是java按键事件,两者搭配用,能做的事挺多的,比如QQ或者微信来个轰炸,比如抢个票,比如破解个wifi密码~

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值