写在前面:
老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边。巧了,最近一个朋友说他之前写了个程式,我就问了一下。哇,这不正是我想要的!他是做了一个可以自动登录网站,然后自动填写日报的程式。看了之后感觉很棒,于是请教了一下。
朋友的程式是用的c#做的,然后内嵌了一个浏览器控件webbrowser。一下子恍然大悟,还可以这么玩。平时工作也没有接触到浏览器控件,于是赶紧去搜索java的浏览器控件。然后最后也花了点时间,还好,马马虎虎的完成了任务。
思路:
使用javase做一个桌面应用程序,弹出一个框,然后里面内嵌一个浏览器,可以模拟自动登录网站,并可以自动填写日报,达到想要的效果。
对于使用java弹出一个应用框是很好实现的,使用JFrame来实现就好了,主要是如何在弹出框里面内嵌一个浏览器?
首先百度,java浏览器控件,出来的就是jxbrowser,于是去查资料了解
想要做一个自动登录网站的应用,使用javase,内嵌一个浏览器是很好的选择。这样就避免了一些cookie之类的设置。
jxbrowser是什么?
jxbrowser是一个java浏览器控件,是基于chromium内核的。(如果要自动登录的系统是适应ie浏览器的,那么有可能使用此款浏览器控件,在有些功能上不兼容适用。这里稍微注意下,以免踩坑)
如何使用?
首先去下载,http://www.pc0359.cn/downinfo/95385.html,下载下来后进行解压
对于如何破解,可以参考对应的资料,https://blog.csdn.net/Jumenglo/article/details/79459102
下面简单看下项目的破解步骤:
1.创建java项目,导入相关的jxbrowser需要的jar包,(在解压的目录下就可以复制);然后在解压文件里找对对应的demo,复制META-INF文件夹(证书),到自己的项目目录下。然后这个时候如果对应的证书的期限到了,是无法使用的,所以要破解。
2.打开证书teamdev.licenses,直接复制下面的代码,即可。
Product: JxBrowser
Version: 6.x
Licensed to:
License type: Enterprise
License info: JxBrowser Demo License
Expiration date: 01-01-9999
Support expiration date: NO SUPPORT
Generation date: 01-01-9999
Platforms: win32/x86;win32/x64;mac/x86;mac/x64;linux/x86;linux/x64
Company name: TeamDev Ltd.
SigB: 1
SigA: 1
3.在代码中添加破解的代码块
/*破解jxbrowser的代码块 导入下面的包是关键 * import com.teamdev.jxbrowser.chromium.ba; * */ static { try { Field e = ba.class.getDeclaredField("e"); e.setAccessible(true); Field f = ba.class.getDeclaredField("f"); f.setAccessible(true); Field modifersField = Field.class.getDeclaredField("modifiers"); modifersField.setAccessible(true); modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL); modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL); e.set(null, new BigInteger("1")); f.set(null, new BigInteger("1")); modifersField.setAccessible(false); } catch (Exception e1) { e1.printStackTrace(); } }
注意,此时添加代码块后,可能找不到ba,因为还需要导入对应的包&#