2013-07-19 3 views
0

Я создал JFrame с несколькими ярлыками. Мне нужно отобразить JOptionPane с сообщением «приветственный пользователь» один раз. Если кадр снова открывается перед перезагрузкой Windows, то JOptionPane не должен появляться, но если Windows перезагружена, JOptionPane должен появиться снова.Как перехватить событие запуска Windows в Swing

Как я могу определить, была ли система перезагружена, так как в последний раз мое приложение запускалось?

+2

Рассмотрите возможность создания SSCCE (пример с коротким самодостаточным правилом) – nachokk

+0

i dont hav code yet bcoz m confused где начать –

+0

Итак, вы ищете что-то вроде Windows.isRestarted()? Извините, нет такой вещи :) – Kayaman

ответ

2

Итак, как упоминал Байкаман, в Java нет метода isRebooted() ... но вы можете его создать.

Предполагая, что вы работаете на платформах Windows (вам нужно будет реализовать отдельную версию для других ОС), вы можете запросить system event log. Со всеми вещами, которые попадают туда, я считаю, что это будет включать событие для «входа в систему», поэтому все, что вам нужно сделать, это найти способ поиска последнего «вошедшего в систему» ​​времени и посмотреть, изменилось ли оно с тех пор, как последний раз, когда вы проверили.

Доступ к журналу событий - это трюк, специфичный для Windows, и поэтому он не будет находиться в родной java-api, однако возникает вопрос о том, как access the event log from Java, который вы можете использовать в качестве базы.

1

Бросьте BAT скрипт в папке Автозагрузка пользователя, который создает файл в определенном месте:

echo JUST_STARTED > C:\NAME_OF_YOUR_APP.TXT 

В приложении, проверьте, существует ли файл. Если это так, удалите его и покажите сообщение.

Смежные вопросы