您的位置:首页 > 其它

VC实现当前程序退出后重启

2016-04-12 19:45 316 查看
所谓重启就是杀死系统的当前进程,然后重新开一个新进程。

void CTestRebootDlg::OnBnClickedButton1()
{
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL);

//获取exe程序当前路径
TCHAR szAppName[MAX_PATH];
:: GetModuleFileName(NULL, szAppName, MAX_PATH);

std::wstring strCommandline = L"\"-scmd\" \"appid\" \"100\"";
wchar_t pszCommandline[1024] = { 0 };
wcscpy_s(pszCommandline, strCommandline.c_str());

//重启程序
STARTUPINFO StartInfo;
memset(&StartInfo, 0, sizeof(STARTUPINFO));
StartInfo.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION procStruct;
memset(&procStruct, 0, sizeof(PROCESS_INFORMATION));
//
::CreateProcessW(
(LPCTSTR)szAppName,
(LPWSTR)pszCommandline,//命令行参数放置于此
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartInfo,
&procStruct);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: