我有一个用C ++编写的Windows应用程序,有时会崩溃。有没有办法以编程方式忽略模式对话框并自动重新启动应用程序?
答案 0 :(得分:4)
我从病毒中学到的东西:使用服务检查您的应用程序是否正在运行。如果服务检测到应用程序未运行,请启动该应用程序。随便实施服务。
答案 1 :(得分:4)
您可以查看RegisterApplicationRestart功能(Windows Vista / 2008最低版本)
答案 2 :(得分:0)
编写一个重新启动的未处理异常处理程序。如果您需要确保有记忆,请预先分配。
如果你从故障中恢复过多的保证,你就有可能永远不会修复故障。
另外,最好通知某人它出现故障并关机。如果您在每次程序启动时出现问题,那该怎么办?然后看起来你的程序一直在运行,但它没有做任何事情。
答案 3 :(得分:0)
在vc ++中:
//-- a Top-level Exception Handler in process level
LONG WINAPI TopLevelExceptionHandler(PEXCEPTION_POINTERS pExceptionInfo)
{
// find app name to re execute it.
TCHAR szPath[_MAX_PATH];
VERIFY(::GetModuleFileName(AfxGetApp()->m_hInstance, szPath, _MAX_PATH));
CString csPath(szPath);
// re execute.
ShellExecute( NULL, "open",csPath , NULL, NULL, 1 );
//
exit(-1);
return EXCEPTION_CONTINUE_SEARCH;
}
main()
{
//set a Top-level Exception Handler in process level to re execute app.
SetUnhandledExceptionFilter(TopLevelExceptionHandler);
.
.
.
}