转载地址: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. 关于distinct的compare参数的使用

    1.创建compare类 using DCZY.Bean; using System; using System.Collections.Generic; using System.Linq; usi ...

  2. 模意义下的FFT算法

    //写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序 ...

  3. electron-vue 引入 vue.ant.design报错

    ERROR in ./node_modules/ant-design-vue/dist/antd.less (./node_modules/css-loader!./node_modules/less ...

  4. jquery keypress() 方法 语法

    jquery keypress() 方法 语法 作用:keypress 事件与 keydown 事件类似.当按钮被按下时,会发生该事件.它发生在当前获得焦点的元素上.不过,与 keydown 事件不同 ...

  5. [CSP-S模拟测试]:迷宫(最短路)

    题目传送门(内部题123) 输入格式 输入文件的第一行为四个正整数$n,m,k,d$. 接下来$m$行,每行三个整数$u,v,w$,描述一条无向道路. 输入文件最后一行包含$k$个整数,为$p_0,p ...

  6. Div内容居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 设置iterm可配色

    设置终端和ls可配色 终端输入vim ~/.bash_profile 添加如下export #enables colorin the terminal bash shell export export ...

  8. python3笔记五:while语句

    一:学习内容 while语句 while-else语句 while语句练习 二:while语句 1. 格式 while 表达式:    语句 2.逻辑 当程序执行到while语句时,首先计算表达式的值 ...

  9. ES6学习一--ES5

    JSON对象方法 1.将JSON字符串转换成js对象(IE7及以下不支持)(IE7及以下兼容需其他手段) JSON.parse() 2.将js对象转成JSON字符串 JSON.stringify() ...

  10. Ruby Programming学习笔记

    #将ARGV[0]转换成正则表达式类型 pattern= Regexp.new(ARGV[0]) #Devise gem包 Devise是Ruby中使用最广泛的身份验证gem包之一.Devise为我们 ...