使用應用程式復原並重新啟動
應用程式可以使用 Application Recovery 和 Restart (ARR) ,在應用程式因未處理的例外狀況或應用程式停止回應而結束之前儲存資料和狀態資訊。 如果要求,應用程式也會重新開機。
當您註冊復原或重新開機時,註冊資訊會新增至進程。 Windows 錯誤報告 (WER) 會使用註冊資訊來呼叫復原回呼,並重新啟動您的應用程式。 例如,如果您註冊復原,且應用程式遇到未處理的例外狀況,WER 會顯示對話方塊給使用者,讓使用者選擇在線上檢查解決方案、關閉程式或偵錯程式。 如果使用者選擇檢查解決方案或關閉程式,WER 會呼叫已註冊的回呼,並讓應用程式有機會儲存資料和狀態資訊。 當復原完成時,會終止應用程式。
如果您註冊重新開機,且應用程式遇到未處理的例外狀況,WER 會向使用者顯示相同的對話方塊,但提供重新開機程式的選項,而不是關閉程式。 如果您同時註冊復原和重新開機,請先進行復原;應用程式接著會終止並重新啟動。
沒有回應的應用程式會以類似的方式處理。 如果應用程式未回應 Windows 訊息 5 秒,且使用者接著會嘗試與應用程式互動,則應用程式會被視為沒有回應;使用者會在標題列中看到 (沒有回應) 。 當使用者按一下系統關閉按鈕時,就會啟動 WER。
您必須註冊復原或重新開機,或移除註冊,應用程式才會沒有回應或遇到未處理的例外狀況。 不過,在復原回呼中,您可以變更重新開機命令列。
如需註冊復原或重新開機的詳細資訊,請參閱下列主題:
如需實作復原和重新開機功能的範例,請參閱 WinBase\WindowsErrorReporting 資料夾中 Windows SDK 中的 AppRecovery 和 AppRestart 範例。