软件自动重启的三种方法:
1、利用守护进程:在软件内部关闭软件、用守护进程检测此软件是否是运行状态,如果没有运行,启动此软件。
2、创建新进程:在软件中创建一进程,在此进程中关闭此软件,再启动此软件。
3、利用异常:当需要重启软件时,写入异常代码,在异常处理中,重新启动软件。
利用异常处理代码:
LONG WINAPI Exception(LPEXCEPTION_POINTERS exception)
{
CHAR path[MAX_PATH]; // or WCHAR
::GetModuleFileName(NULL,path,MAX_PATH);
if(IDYES_MessageBox(NULL,_T("restart"),_T("restart"),MB_YESNO)
WinExec(path,SW_SHOW);
return EXCEPTION_EXECUTE_HANDLER;
}
在OnIniDialog中添加如下代码:
SetUnhandleExceptionFilter(Exception);
char* ch(0);
*ch = 'c';
运行即可看到效果