MFC程序重启动(重登陆)

1、增加一个全局变量:
bool m_bRestart = false;
2、在重启动响应处,增加:
m_bRestart = true;
this->SendMessage(WM_CLOSE);
3、增加响应事件onClose();在其中添加如下代码:
TCHAR szPath[MAX_PATH];  // 获取当前应用程序的全路径
GetModuleFileName(NULL, szPath, MAX_PATH); 
//定义俩变量,具体的请参见msdn
STARTUPINFO startupInfo;
PROCESS_INFORMATION procInfo;
memset(&startupInfo,0x00,sizeof(STARTUPINFO));
startupInfo.cb = sizeof(STARTUPINFO);
if(m_bRestart) // 这个变量是标记
{                   ::CreateProcess(szPath,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&startupInfo,&procInfo);  // 这句是决定命运的关键 
    }
CFrameWnd::OnClose();

你可能感兴趣的:(MFC程序重启动(重登陆))