如何用代码实现“关闭自身程序,然后重启自身程序”?详见代码:
void CTestRebootDlg::OnBnClickedButton1()
{
//发送退出程序消息
::SendMessage(this->m_hWnd, WM_CLOSE, 0, 0);
//MFC程序可以用下面这行代码
//::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);
}