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

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

  1. // 重启按钮响应函数  
  2. void CTestRebootDlg::OnBnClickedReboot()  
  3. {  
  4.     // TODO: 在此添加控件通知处理程序代码  
  5. ::PostMessage(AfxGetMainWnd()->m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL);  
  6.     //获取exe程序当前路径  
  7.     extern CTestRebootApp theApp;  
  8.     TCHAR szAppName[MAX_PATH];  
  9.     :: GetModuleFileName(theApp.m_hInstance, szAppName, MAX_PATH);  
  10.     CString strAppFullName;  
  11.     strAppFullName.Format(_T("%s"),szAppName);  
  12.     //重启程序  
  13.     STARTUPINFO StartInfo;  
  14.     PROCESS_INFORMATION procStruct;  
  15.     memset(&StartInfo, 0, sizeof(STARTUPINFO));  
  16.     StartInfo.cb = sizeof(STARTUPINFO);  
  17.     ::CreateProcess(  
  18.         (LPCTSTR)strAppFullName,  
  19.         NULL,  
  20.         NULL,  
  21.         NULL,  
  22.         FALSE,  
  23.         NORMAL_PRIORITY_CLASS,  
  24.         NULL,  
  25.         NULL,  
  26.         &StartInfo,  
  27.         &procStruct);  
  28. }  

参考文献:

1.如何自动重启程序

2.windows控制台程序自动重启

【VS开发】VC实现程序重启的做法的更多相关文章

  1. VC实现程序重启的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启.所谓重启就是杀死系统的当前进程,然后重新开一个新进 ...

  2. VC++实现程序重启的方法(转载)

    转载:http://blog.csdn.net/clever101/article/details/9327597 很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启.所谓重启就是杀死 ...

  3. VC++ 实现程序重启

    转载:https://blog.csdn.net/what951006/article/details/72729448 一.创建一个Win32项目 二.窗口处理函数中,Create窗口时创建一个按钮 ...

  4. vc/vs开发的应用程序添加dump崩溃日志<转>

    原贴地址:https://blog.csdn.net/wangkui1331/article/details/78029940 vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很 ...

  5. Microsoft Visual Studio 开发的C++程序软件发布相关事宜

    VS2005/VS2008软件发布: Debug版本: 非MFC程序: 编译选项mdd: 仅依赖C++库和C运行时库,需要到VS2005/VS2008下安装目录VC/redist/Debug_NonR ...

  6. 在Visual Studio中使用MonoTouch开发iOS应用程序

    前段时间在工作机上装了Mac OS X,这主要是因为我最近需要开发iPhone应用程序.虽然Xcode,Objective C一定是开发iOS应用程序的主流,但是经过一番考虑,我还是决定尝试一下使用M ...

  7. 如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

    在Ubuntu中安装Eclipse和CDT步骤如下: 1. 下载资源(都下载到/home/maxw/Download/Eclipse下)    A. 下载JRE(Java Runtime Enviro ...

  8. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

    在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...

  9. 开发微信小程序入门前

    开发微信小程序入门前 百牛信息技术bainiu.ltd整理发布于博客园 2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅.个大新闻.论坛都在讨论这个事情. 作为互联 ...

随机推荐

  1. head&tail命令

    1.tail tail命令用途是按照要求将指定的文件的最后部分输出到标准设备, 一般是终端,通俗来讲,就是把某个档案文件的最后几行显示到终端上, 如果该档案有更新,tail会自动刷新,确保你看到最新的 ...

  2. Linux系统上java调用C++ so库文件

      PART1:     java中使用jna替代jni调用c++/c生成的 dll/so库文件需要做的事项 1.引入JNA依赖或者直接下载JNAjar包           <!-- http ...

  3. QT:QSS ID选择器无效

    我正在学习使用Qt样式表给我的应用程序添加不同的样式.我上网看了看Qt文档,上面说你可以使用一种ID选择器,它可以把主题应用到某些对象上.我就是这样实现这个特性的: QPushButton#butto ...

  4. VS2015安装QT插件

    下载安装完后直接重新启动vs

  5. java 获取文本一行一行读

    直接上代码: 如果出现乱码:请改一下编码:我这里使用utf-8是会乱码的,改GBK就好了 // 读取文件内容 public static String readFile(String path) {/ ...

  6. js手写笔记

    1.document.write(); 2.document.getElementById("").style.color="red";//sytle.font ...

  7. 20175215 2018-2019-2 第一周Linux虚拟机环境调试及java程序调试学习总结

    一.Linux虚拟机的java环境调试 之前直接在终端中使用export直接配置java的运行环境,导致每次终端被重启的时候都要重新配置java的运行环境,直到看到老师的博客Intellj IDEA ...

  8. 二、PHP链接mongodb

    <?php $db=new Mongo("mongodb://sa:sa@localhost:27017"); $c=$db->selectDB("TestD ...

  9. linux的awk使用

    awk统计password文件中,登陆shell为“/sbin/nologin”的用户个数 [root@localhost ~]# cat passwd | grep "/sbin/nolo ...

  10. DeepFaceLab620稳定版使用过程详解!

    网站上的小白入门系列教程是基于2019.3.13的版本而编写,有部分内容已经发生了变化.而目前比较稳定的版本为620,这个版本保持了很长一段时间,并没有发现什么大问题,用着挺好.所以我决定针对这个版本 ...