在进行相关设置后需进行程序的重启,先弹出对话框:
if(MessageBox("更改设置后需重启程序","提示",MB_YESNO) == IDYES)
{
m_dlgSuperMarket.Restart();//重启程序
::TerminateProcess(::GetCurrentProcess(),NULL);//终止原先程序
}
void CSerialPortDlg::Restart()//重启系统
{
PROCESS_INFORMATION pi;
memset((void*)&si,0,sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
CHAR FilePath[255];
char * filename = "SuperMarket.exe";//程序exe文件名
GetModuleFileName(NULL,FilePath,255); //获得文件的路径
(strrchr(FilePath,'\\'))[1] = 0;
strcat(FilePath,filename);
CreateProcess(NULL,FilePath,NULL,NULL,TRUE,0,NULL,NULL,&si,&pi); }