2011-07-15 100 views
5

我的應用程序需要掃描經常導致崩潰的第三方文件。 爲了克服這個問題,它使用一個單獨的進程來掃描這些文件,並且每當這個進程崩潰時我的應用程序就會實例化另一個文件。防止Windows中的崩潰消息

我的問題是,每次大跌後獲得Windows崩潰的消息: 「AuxScanner已停止工作......」

我怎樣才能防止這種消息,並悄悄地崩潰了?

我使用命名管道進行進程間通信。

感謝

回答

6

請參閱http://blogs.msdn.com/b/oldnewthing/archive/2004/07/27/198410.aspx:您可以禁用程序崩潰對話框(儘管您需要從子進程內部執行此操作)。

我讀它的樣子,你想在你的子過程是這樣的:

#include <windows.h> 

//... 

SetErrorMode(SetErrorMode(0) | SEM_NOGPFAULTERRORBOX); 
//or if you only care about Vista or newer: 
//SetErrorMode(GetErrorMode() | SEM_NOGPFAULTERRORBOX); 

的方式有趣的問題 - 這可能是有趣的,堅持到開發過程中各種軟件;當你積極開發的代碼崩潰(並非意外),然後一切等待,你的UI改變焦點,它提供(毫無意義地)將崩潰轉儲發送到微軟,這是非常煩人的...

1

如果你得到了「......竟停止工作」的消息,這意味着你沒有處理異常。確保能夠或可能導致崩潰的代碼段被封裝在try/catch塊中,並優雅地處理異常。

+0

我喜歡這個答案。它沒有回答原來的問題,而是因爲Shlomi Tsur錯過了這個觀點,即無論處理文件的內容如何,​​沒有理由讓這個進程崩潰。 – DataGraham