【VS开发】VC实现程序重启的做法
2016-07-24 08:51
344 查看
转载地址:http://blog.csdn.net/clever101/article/details/9327597
很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启。所谓重启就是杀死系统的当前进程,然后重新开一个新进程。同事探索了一下,实现了这个功能。我总结了一下他的经验。下面一个MFC的对话框程序的按钮响应函数说明如何实现。
[cpp] view
plaincopy
// 重启按钮响应函数
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, 0, sizeof(STARTUPINFO));
StartInfo.cb = sizeof(STARTUPINFO);
::CreateProcess(
(LPCTSTR)strAppFullName,
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartInfo,
&procStruct);
}
参考文献:
1.如何自动重启程序
2.windows控制台程序自动重启
很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启。所谓重启就是杀死系统的当前进程,然后重新开一个新进程。同事探索了一下,实现了这个功能。我总结了一下他的经验。下面一个MFC的对话框程序的按钮响应函数说明如何实现。
[cpp] view
plaincopy
// 重启按钮响应函数
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, 0, sizeof(STARTUPINFO));
StartInfo.cb = sizeof(STARTUPINFO);
::CreateProcess(
(LPCTSTR)strAppFullName,
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartInfo,
&procStruct);
}
参考文献:
1.如何自动重启程序
2.windows控制台程序自动重启
相关文章推荐
- IO —— 对象序列化与反序列化
- 基础1
- POJ 2785 upper_bound找到上界和下界
- Oracle用户的创建及授权
- uva 1152 和为0的4个值(中途相遇法)
- 【VS开发】【图像处理】自动白平衡(AWB)算法---色温曲线
- python opencv(9)图像的复制与灰度化
- N皇后问题
- Python 小甲鱼教程 课后练习42
- HTML+CSS 笔记
- mit 6.824 mapreduce
- 《算法竞赛》第二版 237页 uva 1152 和为0的4个值
- 使用flume,伪分布式集群配置
- 【Android开发经验】ViewHolder到底用什么修饰?static?final?static final?
- 高并发下接口的并发问题
- Centos7更改默认网卡为eth
- 【VS开发】【图像处理】V4L2 pixel format
- smart基础
- java中的final
- java中的泛型