如何将 Windows 进程重置为以前的状态
How can I reset a Windows process to a previous state?
>我有一个大型应用程序,其中包含许多线程和许多复杂的静态对象。目前,当用户注销时,应用程序将重新启动以强制将应用程序重置为其初始状态。
此过程将更改为 Windows 服务,因此此方法不再可行。同样,代码太混乱,无法正确实现在用户注销时重置状态的方法。
我在想可能有一种方法可以将整个过程的初始内存写入磁盘,然后在请求重置时加载它,但这有很多问题,例如无法保存内核模式状态。
我需要一种方法(无论多么脏)将此过程重置为其初始状态,而无需实际重新启动该过程。winapi 是否提供任何可以为我完成此操作的内容?
没有什么可以阻止Windows服务在单独的进程中完成其实际工作,尽管不可否认它有点混乱。 因此,我建议您有两个可执行项:父进程(作为服务实现)和子进程(只要您需要重置应用程序的状态,子进程就可以退出(并由父进程重新启动)。
Windows在这里不会帮助你。您必须在自己的代码中解决问题,而不是寻找银弹。你说
您代码也是 正确实现重置状态的方法非常混乱 当用户注销时。
将不得不重新考虑,因为这是您唯一的选择。
无需重写任何内容(您应该这样做),您只需将所有当前逻辑移动到工作线程中,然后服务可以在需要时生成、终止和重新生成该线程。 服务进程本身将保持运行。
相关文章:
- 涉及"std::string"的编译会导致 Windows 错误状态
- 当 /Whorearchive选项处于活动状态时,无法使用Visual Studio链接到Windows上的自构建张量
- 检查Windows激活状态返回错误的值
- Windows编程:为什么我们要将lParam转换为CREATESTRUCT来获取应用程序状态
- 如何在Windows C MFC应用程序状态栏中禁用CAP NUM SCRL指示器
- DirectX 11 调试器需要 Windows SDK 10,但它在 IDE 中处于选中状态并存在于系统中
- 使用win32监视Windows任务栏状态更改
- 如何跟踪Windows 7是否在C ++中以编程方式进入睡眠或休眠状态,就像在Windows XP中所做的那样
- Windows服务处于“启动”状态
- 正在尝试解释Windows操作系统上的用户会话状态
- 这是存储 std::分配器状态的正确方法 - 在这种情况下,由 Windows 上的共享内存支持
- 从任务管理器获取应用程序故障转储中显示的状态在 Windows 上是否准确
- 如何将 Windows 进程重置为以前的状态
- Windows:如何在低级键盘挂钩中查询修饰键的状态
- 如何通过其上的路径判断Windows分区是否处于活动状态
- 正在尝试禁用Windows PC上的处理器空闲状态(C状态)
- QT C++-如何在播放列表处于活动状态的情况下打开Windows Media Player
- C++可以让pthread(Windows)保持打开状态来多次运行一个函数吗
- 修改c/c++中Windows服务的状态
- Windows在运行一个很长的c++ Visual Studio程序时处于休眠状态