在使用.NET关闭之前保存状态

Sam*_*eet 2 .net c# shutdown

我想在关机之前保存我的机器状态(对于不支持休眠的机器).

基本上,我试图模仿Windows Hibernate功能.当机器重新打开时,它看起来就像以前关机一样.

有关使用托管代码执行此任务的任何想法?

目前正在使用/考虑Windows XP Service Pack 2.

Rob*_*les 5

对于在您的计算机上运行的所有应用程序,使用纯托管代码是不可能的.事实上,即使使用非托管代码,您也会有一段时间.我不会说这是不可能的,但可能非常困难和时间消耗.

以下是一些有用的资源,可帮助您入门:

Windows内核上的Arun Kishan
http://www.dotnetrocks.com/default.aspx?ShowNum=434

核心转储
http://en.wikipedia.org/wiki/Core_dump

setcontext
http://en.wikipedia.org/wiki/Setcontext

Raymond Chen谈"休眠"单一流程
http://blogs.msdn.com/oldnewthing/archive/2004/04/20/116749.aspx

对于您自己的应用程序,最好的办法是将您希望能够恢复的所有状态隔离到一组可序列化的类中.然后,在卸载(或定期)应用程序时,使用XMLSerializer将此数据保存到磁盘.再次加载应用程序时,再次使用XMLSerializer来重新保存包含应用程序状态的类,并使用此信息将用户界面返回到先前的状态.如果您有复杂的用户界面,这可能是一项耗时的任务.