探秘Visual Studio 2010中的灾难恢复功能
2009-03-11 17:45:41 来源:WEB开发网这样,我们就实现了一个简单的支持重启管理器的文档视图类型的MFC应用程序。这个程序可以通过鼠标在视图中点击向文档中添加数据,然后这些数据可以保存和重新打开。
使用Restart Manassas API测试重启管理器
接下来,我们可以编写一个测试程序,使用Restart Manassas API模拟软件的更新后重启,以验证其重启管理器是否正常工作。
用Visual Studio 2010 CTP创建一个控制台应用程序TestRM,然后将其实现如下:
//#include "stdafx.h"
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwSessionHandle = 0;
WCHAR wszSessionKey[CCH_RM_SESSION_KEY+1];
// 设定需要重启的资源
LPCWSTR pwzResourcesToRestart[] =
{L"C:\Users\TFSSETUP\Documents\Visual Studio 10\Projects\
RestartManagerDemo\Debug\RestartManagerDemo.exe" };
// 创建一个重启任务
if (RmStartSession(&dwSessionHandle, 0, wszSessionKey) == ERROR_SUCCESS)
{
// 注册资源
if (RmRegisterResources(dwSessionHandle, 1,
pwzResourcesToRestart, 0, NULL, 0, NULL) == ERROR_SUCCESS)
{
// 关闭应用程序
if (RmShutdown(dwSessionHandle,
RmShutdownOnlyRegistered, NULL) == ERROR_SUCCESS)
{
// 重新启动应用程序
if (RmRestart(dwSessionHandle, 0, NULL) == ERROR_SUCCESS)
{
return 0;
}
}
}
}
return 0;
}
我们首先运行RestartManagerDemo,在视图中用鼠标点击向文档中添加数据,然后保持文档为demo.bub。
图片看不清楚?请点击这里查看原图(大图)。
图3 支持重启管理器的MFC应用程序
现在,我们就可以运行TestRM重启这个应用程序了。运行TestRM后,我们会看到RestartManagerDemo会被关闭然后重新打开。同时,我们之前打开的文档demo.bub也被重新加载,整个应用程序很快恢复到了我们之前的工作状态。
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››探秘IE8 JavaScript功能超乎想象
- ››Visual C++优化对大型数据集合的并发访问
- ››VISUAL C++中的OCX控件的使用方法
- ››Visual C++实现视频图像处理技术
更多精彩
赞助商链接