E81086713E446D36F62B2AA2A3502B5EB155

Java杂家

杂七杂八。。。一家之言

BlogJava 首页 新随笔 联系 聚合 管理
  141 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
利用周末时间把Native Splash Screen支持给做进去了,现在在创建EXE时可以订制程序启动时的Splash Screen图片(BMP,JPG,GIF..)以及定制显示的文字。

Splash Screen会在你的程序显示第一个窗口时自动消失,假如你的程序永远不会显示窗口,那么你可以在程序中显式关闭Splash Screen.

在你的程序中添加类似如下代码:
1 Class cls=Class.forName("com.yovn.labs.java2exe.loader.SplashScreen");
2                 Method getIM=cls.getMethod("getInstance"new Class[0]);
3                 Object screen=getIM.invoke(nullnew Object[0]);
4                 Method m=cls.getMethod("dispose"new Class[0]);
5                 m.invoke(screen, new Object[0]);
6                 //SplashScreen.getInstance().dispose();
7                 System.out.println("disposed splash screen");
8 


Splash Screen是在创建JVM之前就显示的。

那么这是怎么实现的呢?问题的关键在于程序显示第一个窗口时如何能通知到Splash Screen?
魔力在于API Hook!!
显示任何一个窗口,绝大多数(不知道是不是全部)都是通过ShowWindow()Windows API实现的,该函数定义在User32.dll中,通过查找JVM载入的所有Module,并在其中替换导入的该函数地址就可以在调用该函数时得到通知,从而实现自动关闭Splash Screen.


下载:
Java2exe_0.0.2.rar
posted on 2007-03-04 00:53 DoubleH 阅读(2322) 评论(8)  编辑  收藏

Feedback

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-03-04 15:21 azure
厉害,同时精通c和java真不容易。
jdk6里面可以通过启动的时候添加splash screen参数启动,如:
java -cp ... -splash splashImage ... 来启动,不过没有你这么做好,因为这样启动的只是一个image,象进度条等处理比较麻烦一点。
  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-03-04 16:52 Druze.libo
运行了一下java2exe,机子重启了,呵呵  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-03-04 17:47 Javacap
@Druze.libo
呵呵,那真是非常不好意思阿。。。。能mail告诉我你的环境么?  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现][未登录] 2007-03-06 14:47 quietywind
还是跟上一个版本一样,点击add后没有任何反应,我的JRE是1.5版的,会是什么问题呢?  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-03-06 16:01 Javacap
@quietywind
非常抱歉!!!我一不小心使用了个JDK1.6 的类javax.jswing.filechooser.FileNameExtentionFilter
今晚回家更新一下!

  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-03-06 21:35 Javacap
@quietywind
现在已更新了,去掉了JDK6中的类,欢迎使用!!  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现][未登录] 2007-03-07 09:29 quietywind
多谢,使用了一下效果不错,不过好像目前不支持中文路径,可以共享一下思路么? 让我也可以学习一下 :)  回复  更多评论
  

# re: Java转EXE工具(二)[也谈Splash Screen实现] 2007-12-21 13:29 Ikbear
朋友,我运行你那个程序,点击add,半天才跳出对话框啊。感觉大的JAVA程序在我机子上运行都是很慢很慢的,netbeans也是一样的效果,会是显卡的问题吗?还是驱动没装好呢?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: