admin管理员组文章数量:1574959
今天翻翻以前写过的娱乐的代码忽然看到个好玩的,今天这里分享一下。
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密码~
版权声明:本文标题:java Robot-控制键盘鼠标自动输入用户名密码登录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727781203a1129334.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论