如何将 Windows 进程重置为以前的状态

How can I reset a Windows process to a previous state?

本文关键字:状态 Windows 进程      更新时间:2023-10-16

>我有一个大型应用程序,其中包含许多线程和许多复杂的静态对象。目前,当用户注销时,应用程序将重新启动以强制将应用程序重置为其初始状态。

此过程将更改为 Windows 服务,因此此方法不再可行。同样,代码太混乱,无法正确实现在用户注销时重置状态的方法。

我在想可能有一种方法可以将整个过程的初始内存写入磁盘,然后在请求重置时加载它,但这有很多问题,例如无法保存内核模式状态。

我需要一种方法(无论多么脏)将此过程重置为其初始状态,而无需实际重新启动该过程。winapi 是否提供任何可以为我完成此操作的内容?

没有什么可以阻止Windows服务在单独的进程中完成其实际工作,尽管不可否认它有点混乱。 因此,我建议您有两个可执行项:父进程(作为服务实现)和子进程(只要您需要重置应用程序的状态,子进程就可以退出(并由父进程重新启动)。

Windows在这里不会帮助你。您必须在自己的代码中解决问题,而不是寻找银弹。你说

代码也是 正确实现重置状态的方法非常混乱 当用户注销时。

将不得不重新考虑,因为这是您唯一的选择。

无需重写任何内容(您应该这样做),您只需将所有当前逻辑移动到工作线程中,然后服务可以在需要时生成、终止和重新生成该线程。 服务进程本身将保持运行。