我有一個用C++編寫的Windows應用程序,有時會崩潰。有沒有辦法以編程方式忽略模式對話框並自動重新啓動應用程序?以編程方式重新啓動應用程序崩潰
回答
你可以看看在RegisterApplicationRestart功能(Windows Vista中/ 2008最低)
我從病毒中學到的東西:使用服務來檢查您的應用程序是否正在運行。如果服務檢測到應用程序未運行,請啓動該應用程序。不管你喜歡如何實施這項服務。
非常非常好。該服務甚至不一定是實際的服務,只是另一個程序。 –
因此....病毒掃描程序是病毒。 –
如果您曾嘗試從您的計算機中刪除病毒掃描程序,您將能夠看到相當多的相似之處,是的 – jalf
編寫重新登場未處理的異常處理程序。如果您需要確保您有記憶功能,請預先分配。
如果您從錯誤中恢復過多的保證,您將無法修復錯誤。
另外,最好通知某人它發生故障並關機。如果您在每次程序啓動時都會重複出現問題,那該怎麼辦?然後它看起來像你的程序總是在運行,但它沒有做任何事情。
在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);
.
.
.
}
- 1. 以編程方式崩潰後重新啓動應用程序 - Android
- 2. 如何在Android中崩潰時以編程方式重新啓動/重新啓動應用程序?
- 3. 以編程方式重新啓動所有崩潰服務的服務程序
- 4. 以編程方式重新啓動應用程序?
- 5. 以編程方式重新啓動android應用程序
- 6. 以編程方式重新啓動應用程序?
- 7. 以編程方式重新啓動離子應用程序
- 8. 重新啓動代理程序崩潰
- 9. 如何以編程方式重新啓動java web啓動應用程序
- 10. 應用程序在重新啓動活動時崩潰
- 11. 應用程序在手動kill後重新啓動時崩潰
- 12. 以編程方式重新啓動IIS
- 13. 如何以編程方式崩潰Android應用程序?
- 14. 應用程序崩潰,同時以編程方式添加UICollectionView
- 15. 以編程方式重新啓動Windows應用商店應用程序
- 16. Android:應用程序崩潰應用程序重新啓動Facebook登錄
- 17. 檢測並重新啓動崩潰的.NET應用程序
- 18. 如何在崩潰後重新啓動qt應用程序?
- 19. Android應用程序崩潰時重新啓動
- 20. Web應用程序重新啓動jni崩潰?
- 21. 應用程序在手機的重新啓動時崩潰
- 22. 在崩潰時重新啓動應用程序
- 23. 崩潰後重新啓動ASP.NET核心應用程序
- 24. 應用程序重新啓動太快時崩潰
- 25. Android應用程序崩潰後重新啓動
- 26. Android應用程序在重新啓動前崩潰
- 27. 當它崩潰時重新啓動Silverlight應用程序?
- 28. 快速退出時應用程序崩潰+重新啓動
- 29. 應用程序在啓動後崩潰
- 30. WPF啓動時應用程序崩潰
另一種解決方案......弄清楚它爲什麼有時會崩潰和解決問題! – Praetorian
[防止win32進程崩潰的模態對話框]可能的重複(http://stackoverflow.com/questions/1861506/prevent-modal-dialog-on-win32-process-crash) –
用於泄漏的統計數據包S-Plus內存可怕,其解決方案就是這樣。當它認爲它接近邊緣時,它會保存它的狀態,重新啓動,恢復狀態並繼續。毋庸置疑,這不是用戶基礎的好的解決方案!遵循Praetorian的建議並修復疾病,而不是設法治癒。 –