如何在Swing中拦截Windows启动事件

时间:2013-07-19 12:55:28

标签: java windows swing

我创建了一个带有几个标签的JFrame。我需要显示一条带有“欢迎用户”消息的JOptionPane一次。如果在重新启动Windows之前重新打开框架,则不应显示JOptionPane,但如果Windows重新启动,则JOptionPane应再次出现。

自上次运行应用程序以来,我如何检测系统是否已重新启动?

2 个答案:

答案 0 :(得分:2)

所以,正如@Kayaman所提到的,Java中没有isRebooted()方法......但你可以制作一个。

假设您正在使用Windows平台(您需要为其他操作系统实现单独的版本),您可以查询system event log。有了所有放入其中的东西,我认为它会包含一个“登录”事件,所以你需要做的就是找到一种方法来查找最后一次“登录”时间,看看它是否已经改变了你上次检查时。

访问事件日志是一个特定于Windows的技巧,因此不会在原生java api中,但是如何access the event log from Java可以作为基础使用。

答案 1 :(得分:1)

将BAT脚本放在用户的Autostart文件夹中,该文件夹在特定位置创建文件:

echo JUST_STARTED > C:\NAME_OF_YOUR_APP.TXT

在您的应用中,检查文件是否存在。如果是,请将其删除并显示消息。