为了提高用户体验,让用户用起来感觉比较爽,Microsoft在Windows Vista系统中首先引入了重启管理器(Restart Manager)。
就类似office2007的自动保存功能,一旦出了故障,可以恢复自己的工作成果,不至于让自己工作成果因为故障而丢失。
它可以帮助应用程序维护其当前运行状态,当软件更新后需要重新启动,或者是遇到非常严重的问题崩溃后,可以重新启动软件并且恢复到软件的当前工作状态。更重要的是,它还可以恢复自动保存的软件数据状态,尽量保证用户数据的安全。有了重启管理器,软件就可以很快地从灾难中恢复过来,实现快速“灾后重建”。
微软平台产品及服务部门总裁Jim Allchin向eweek透露,如果一个应用程序或操作系统本身需要更新,安装器就会唤出Restart Manager。Restart Manager负责查看是否能清除操作系统的相关部分,以更新它。如果可以的话,系统就不必重新启动了。
在即将王者归来的Visual c++2010在MFC增加了Restart Manager支持。
重启管理器主要应用在下面两个方面:
◆软件更新
很多时候,软件或者操作系统升级后,需要重新启动才可以生效。在这种情况下,我们就可以使用重启管理器自动关闭真正运行的软件,然后进行更新,更新完成后自动重新启动软件,并且恢复到软件当前的工作状态。这将使得软件的更新更加流畅和智能。
◆软件灾难恢复
当软件遇到严重错误,进程崩溃的时候,可以使用重启管理器重新启动软件,恢复软件自动保持的数据,让软件可以快速地从灾难中恢复过来。
为了支持重启管理器,微软提供了一套Restart Manassas API函数来完成这些工作。这些函数定义在头文件中,如果你的应用程序想使用这套API,需要引用rstrtmgr.lib和rstrtmgr.dll。其中,我们常用的函数有:
◆RMStartSession
创建一个新的重启任务。
◆RMGetList
这个函数可供安装程序使用,它可以得到所有被影响的应用程序及其当前状态。
◆RMRegisterResources
注册重启任务的资源,例如文件名,服务或者是RM_UNIQUE_PROCESS结构体