暂停程序直到下次启动

Pausing program until next startup

我有一个程序可以暴力破解 AES256 加密,当计算机进入 shutdown/or 重新启动并在同一点继续直到系统下一次启动时,我如何暂停该程序?

程序的一种休眠方式。

你在这里问了三件事。

1- 我如何检查 OS 何时变为 reboot/shutdown

解决方法: 您可以使一个空的不可见 window,并向其添加 WindowListener。它将在 windows.

收到 window关闭事件

你可以找到一个例子HERE

2- 如何保存我的 BruteForce 进程的状态并在系统启动时暂停以重新启动。

解决方法: 这里很容易,你必须序列化。这些将保存您的 class/classes 的状态,以便在系统再次启动时反序列化。你可以学习HERE

3- 如何知道当 OS 启动时再次启动程序?

解决方法: 你可以把你的程序放在你的 OS 的初始化过程中。当它启动时,您检查是否有任何要反序列化并执行,恢复 BruteForce 的过程。

我同意@Thufir 回答的第 2 部分和第 3 部分,但关于第 1 部分,它假定您是 运行 GUI。

我会在 JVM 中添加一个 shutdown hook 并在此时写入我的程序状态。您可以使用以下方法执行此操作:

Runtime.getRuntime().addShutdownHook(new Thread() {
   public void run() {
       // your serialization code goes here
   }
});