100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java实现自动输入账号密码登陆软件

Java实现自动输入账号密码登陆软件

时间:2019-07-01 00:20:21

相关推荐

Java实现自动输入账号密码登陆软件

闲来无事做,每次挂外网要用EasyConnect登陆,然而每次登陆都要去输入密码,主要是没有记忆密码功能,太麻烦了。就想着能不能通过代码实现,使其能点击运行就可以让他自动打开该软件,并将账号密码自动输入,自动点击确认登陆。

要实现这些功能,首先要明白Java代码如何打开其他的软件。这就牵扯到了Runtime类,通过Runtime类,调用exec()函数打开软件。

打开软件之后,就要对账号密码进行输入,一开始就想通过输出流将数据通过输出流接管其输入,将输出流将数据输入到输入框中,结果发现不成功。但是为了实现这个功能,又不想耗费过多的时间想怎么实现。所以就想直接用土办法直接暴力实现。这就牵扯到了Java中的robot类,用这个类可以实现对人对键盘和鼠标操作进行模拟。用robot的keyPress()模拟键盘按压功能,用mousePress()模拟鼠标按压。

因为软件一打开就已经定位到账号输入框,可以直接调用keyPress(KeyEvent.VK_1),就可以实现对输入框输入数字1,同理,想要输入3就用KeyEvent.VK_3,就可以对输入框进行输入。

由上图可以看出当我们输入账号后,需要输入密码,但是从输入账号到输入密码,需要将键盘光标锁定到密码输入框。本来想要看能否通过程序获取输入框的各个输入位置,然而偷懒的我不想继续想下去了,直接用土办法,用一些不需要脑子的办法。软件的自动打开有其打开的默认位置,而且,每次打开的位置一样。所以可以通过屏幕对程序进行像素定位。确认密码输入框的位置。用mousePress(InputEvent.BUTTON1_MASK)模拟在该处进行鼠标左键点击。就可以对该输入框进行移动光标(我真的太懒了,不想思考原先的对输入进行定位方法)同理就可以对密码进行输入。

在实现这个的过程中,还要注意对程序的时间延迟,如果软件还没打开,程序就已经执行完了,那肯定是不成功的。所以打开软件后要适当的延迟,等待软件打开,然后再对密码进行输入。

贴个代码模板

`import java.awt.*;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import java.io.IOException;

public class OpenAppView {

void open() throws IOException, InterruptedException, AWTException {

Runtime a = Runtime.getRuntime();

Process p = a.exec("【软件位置(绝对路径)】");

//代码休眠

Thread.sleep(5000);

Robot robot = new Robot();

robot.delay(500);

//输入账号模拟键盘输入

robot.keyPress(KeyEvent.VK_3);

robot.keyRelease(KeyEvent.VK_3);

robot.mouseMove(1200,470);

//模拟鼠标左键输入

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.mouseRelease(InputEvent.BUTTON1_MASK);

//输入密码模拟键盘输入

robot.keyPress(KeyEvent.VK_8);

robot.keyRelease(KeyEvent.VK_8);

robot.keyPress(KeyEvent.VK_ENTER);

robot.keyRelease(KeyEvent.VK_ENTER);

}

public static void main(String[] args) throws IOException, InterruptedException, AWTException {

OpenAppView openAppView = new OpenAppView();

openAppView.open();

}

}`

注意:在模拟键盘输入时要模拟按压,还要模拟释放键盘

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。