您的位置:首页 > 其它

VC实现程序重启的做法

2014-12-11 10:55 211 查看
转载地址: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控制台程序自动重启
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: