转载:http://blog.csdn.net/clever101/article/details/9327597

很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启。所谓重启就是杀死系统的当前进程,然后重新开一个新进程。同事探索了一下,实现了这个功能。我总结了一下他的经验。下面一个MFC的对话框程序的按钮响应函数说明如何实现。

// 重启按钮响应函数
void CTestRebootDlg::OnBnClickedReboot()
{
// TODO: 在此添加控件通知处理程序代码
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL);
//获取exe程序当前路径
extern CTestRebootApp theApp;
TCHAR szAppName[MAX_PATH];
:: GetModuleFileName(theApp.m_hInstance, szAppName, MAX_PATH);
CString strAppFullName;
strAppFullName.Format(_T("%s"),szAppName);
//重启程序
STARTUPINFO StartInfo;
PROCESS_INFORMATION procStruct;
memset(&StartInfo, , sizeof(STARTUPINFO));
StartInfo.cb = sizeof(STARTUPINFO);
::CreateProcess(
(LPCTSTR)strAppFullName,
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartInfo,
&procStruct);
}

最新文章

  1. WPF下的Richtextbox中实现表格合并,添加删除行列等功能
  2. C/C++ 记录时间
  3. 用c和c++的方式实现栈
  4. Git创建ssh-key
  5. Maven3简介
  6. 你知道的display的值有多少?用了多少?
  7. iOS - Swift NSValue 值
  8. 高效能团队协作的JIRA实践
  9. Cocos2D-x培训课程
  10. Map的遍历方式
  11. L2,breakfast or lunch
  12. PAT1097:Deduplication on a Linked List
  13. XUGUO-书呆子-搜索书箱
  14. vijos 1605 双栈排序 - 贪心 - 二分图
  15. 【Spring】7、拦截器HandlerInterceptor
  16. 阿里巴巴Java开发手册要点笔记 (一)
  17. POJ 2923 Relocation 装车问题 【状态压缩DP】+【01背包】
  18. MFC从资源加载文本
  19. ES练习代码
  20. Linux下sh文件运行及桌面环境双击运行sh文件

热门文章

  1. Git:从github上克隆、修改和更新项目
  2. 新入职如何快速去了解一个Javaweb项目!
  3. Vue中父子组件执行的先后顺序探讨
  4. 洛谷P1084 疫情控制 [noip2012] 贪心+树论+二分答案 (还有个小bugQAQ
  5. 开机自启:bat实现一次性打开win7中的常用软件和文件夹
  6. python爬虫CSDN文章抓取
  7. [py]处理文件的3个方法
  8. logstash的各个场景应用(配置文件均已实践过)
  9. [LeetCode] 443. String Compression_Easy tag:String
  10. testng入门教程12 TestNG执行多线程测试