Приостановка программы до следующего запуска

У меня есть программа, которая использует шифрование AES256, как мне приостановить программу, когда компьютер перестанет работать или перезагрузиться, и продолжить работу в той же точке до следующей загрузки системы?

Этакий спящий режим программы.

2 ответа

Решение

Вы спросили три вещи здесь.

1- Как проверить, когда ОС перезагружается / выключается

Решение: Вы можете создать пустое невидимое окно и добавить к нему WindowListener. Он получит событие windowClosing на окнах.

Вы можете найти пример ЗДЕСЬ

2- Как я могу сохранить состояние процесса BruteForce и сделать паузу, чтобы начать снова, когда система выходит из строя.

Решение: здесь легко, вы должны сериализовать. Они сохранят состояние вашего класса / классов для десериализации при повторном запуске системы. Вы можете учиться ЗДЕСЬ

3- Как узнать, когда программа запускается снова, когда ОС загружается?

Решение: Вы можете поместить свою программу в процесс инициализации вашей ОС. Когда он запускается, вы проверяете, есть ли что-нибудь для десериализации и делаете это, восстанавливая процесс BruteForce.

Я бы согласился с частью 2 и 3 ответа @Thufir, но в отношении части 1 предполагается, что вы используете графический интерфейс.

Вместо этого я бы добавил в JVM хук отключения и записал состояние моей программы на этом этапе. Вы можете сделать это используя следующее:

Runtime.getRuntime().addShutdownHook(new Thread() {
   public void run() {
       // your serialization code goes here
   }
});
Другие вопросы по тегам