有没有办法休眠一个应用程序?

时间:2009-03-09 04:54:03

标签: windows-xp

(我不是在谈论Hibernate或NHibernate ORM)

Windows操作系统(和某些Linux版本)具有“休眠”选项以保存状态并关闭计算机。然后,当我们重新启动时,我们可以从之前的存储状态恢复。

有没有办法单独使用Hibernate应用程序?我的意思是我希望通过保存其状态来关闭应用程序,稍后当我启动应用程序时,它应该从之前的存储状态恢复。

是否有可用的第三方工具,或者我可以使用第三方库将该功能添加到我的应用程序中吗?

编辑:我有一个.Net WinForm应用程序,带有选项卡式界面和50多个输入控件。我需要一个解决方案来关闭应用程序,然后在文本框上使用相同的值重新启动。我可以编写一个例程来存储和恢复所有文本框值。但我正在寻找一些可用于任何应用程序的通用方法。

4 个答案:

答案 0 :(得分:1)

您可以将应用程序与其操作系统捆绑为“设备”,并使用类似VMWare的方式来休眠整个虚拟机。

或者您可以使用Smalltalk。

(这两种方法都不是你可以轻松插入现有应用程序的东西,但是,你所要求的似乎确实需要“平台级支持”)。

答案 1 :(得分:1)

Microsoft MED-V应用程序虚拟化可能能够做到这一点,将来很高兴在操作系统中拥有更多应用程序虚拟化功能

答案 2 :(得分:0)

包含您拥有的内存的对象并不太难。问题来自操作系统拥有的资源(窗口,线程,信号量等)。您可以编写保存/恢复这些操作系统所有资源状态的内容,但仍需要销毁/重新创建它们。

你这样做的目标是什么?

答案 3 :(得分:0)

没有这个框架。正如您所建议的那样,实现此目的的简单方法是将数据存储在可序列化的对象中,并将它们序列化为文件,然后在以后将其序列化。

这并不困难,并且可以帮到你。它也非常通用 - 您只需编写几行来序列化任何数量的可序列化数据。

对于更复杂的事情,当用户试图关闭应用程序并在加载应用程序时手动推回时,应将状态(如光标之前的位置等)推送到可序列化对象中。

...但是你的用户可能不会关心这样的东西,他们可能只关心数据是如何回归的。