闲来无事做,每次挂外网要用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();
}
}`

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

Java实现自动输入账号密码登陆软件相关推荐

  1. CentOS 程序设置开机启动脚本并自动输入账号密码

    开机启动输入账号密码 问题场景: openvpn3 程序连接服务器时需要输入账号密码进行验证,无人值守的情况下shell脚本不能自动输入账号密码. 解决思路: 将启动命令写到shell脚本里面,指定配 ...

  2. python自动输入账号密码_Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  3. 实现自动带密码登陆远程机执行shell命令(linux)

    在centos下使用expect,实现带密码登陆远程机并执行shell命令. 第一步:安装expect sudo yum install expect 第二步:建立测试脚本 #!/usr/bin/ex ...

  4. 基于Java的账号、密码登陆页面及验证

    基于Java的登陆页面 需求 功能 程序 登录页面 验证页面 后续 需求 我们在日常上网的过程中,常常会使用很多注册.登录我们的账号和密码的环节.这是网页开发中必不可少的一个环节.本文中将利用Java ...

  5. 使用Winform写的一个LOL自动登录(含网盘) 自动输入账号密码

    这个软件是很久以前在大学的时候,为了借号开黑方便写的,后来又进行了一些附加功能的完善,现在用不到了,拿出来给大家参考. 开发环境:vs2019+fw4.5 组成部分:客户端+服务端+Webapi+Sq ...

  6. python自动输入账号密码并识别验证码登录

    先附上源码,所有的东西都在一个py文件下 import ddddocr from time import sleep from selenium import webdriver from selen ...

  7. Java课程设计-家庭财政管理软件

    [摘要] 家庭理财管理系统是通过信息管理系统的方式记录和管理家庭日常的收入.支出和理财明细,能科学有效的管理家庭的财政情况.随着家庭平均消费水平的增加,很多家庭都面临的财务紧张的问题,如不能合理有效的 ...

  8. 设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。 import java.awt.*; import java.awt.event.*; import

    //设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示. import java.awt.*; import java.awt.event.*; import ...

  9. java使用Selenium模拟登陆58(验证码登陆密码登陆)若快平台识别文字点击验证码

    文章目录 写在前面 配置环境 Selenium入门 使用Selenium登陆58 若快平台识别文字点击验证码 附: By对象中的 xpath & cssSelector获取方式** 不打开浏览 ...

最新文章

  1. 命令行创建React项目
  2. 基于3D的结构光的应用
  3. Control~Kalman filter
  4. xmpp 服务器配置 open fire for windows 及 spark 测试
  5. tomcat指定配置文件路径方法
  6. 无限网络无限连接掉网的解决
  7. 定制属于你的HouseMD
  8. 函数指针也可作为函数的参数
  9. Spring 使用Cache(转)
  10. html打开时按钮自动触发事件,html在用户按下按键时触发的事件属性onkeydown
  11. js判断浏览器是否搜狗浏览器
  12. 【Python】用150行代码模拟太阳系行星运转+源码
  13. 网传程序员加班猝死,当事人:我还在写代码
  14. 基于半车悬架的轴距预瞄与轴间预瞄仿真对比
  15. mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
  16. 酷睿计算机系统吗,酷睿i3和i5的区别是什么?电脑处理器i3和i5的区别介绍
  17. git报错ssh: Could not resolve hostname dev-nys: Name or service not known fatal: Could not read from r
  18. 【web前端面试宝典】经典10问(上篇)
  19. 在线代答代码php,代答接入 打码免的使用入门以及函数使用详解 包含源码
  20. python解5x5数独

热门文章

  1. 【Kubernetes/docker】生成docker镜像推送到hub并在Kubernetes部署应用-20220407
  2. Python 抓取软科中国大学排名首页数据
  3. APP推广干货:10条线上渠道引爆APP流量
  4. Qt snippets
  5. 水箱建模最小二乘法_大气VOCs在线监测系统评估工作指南(二)
  6. Linux 权限相关指令
  7. 2021年美亚杯资格赛解析
  8. 正大国际:你所应该知道的外盘国际期货知识
  9. openwrt源码分析_Luci流程分析(openwrt下)
  10. codeforces1375G Tree Modification