您的位置:首页 > 其它

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