需在自身程式中監控指定進程是否發生崩潰或彈出錯誤對話框(如「xxx 已停止工作」)。
Windows 錯誤報告機制(WER,俗稱「華醫生」)屬使用者模式元件,順序為:
SetUnhandledExceptionFilter)。要最先攔截異常,**將自身作為調試器附加到目標進程** 是最高優先級。
CreateProcess + DEBUG_PROCESS / DEBUG_ONLY_THIS_PROCESS 啟動目標進程,或 DebugActiveProcess(pid) 動態附加。WaitForDebugEvent(&dbgEvent, INFINITE) 等待異常事件。dbgEvent.dwDebugEventCode == EXCEPTION_DEBUG_EVENT,取得 EXCEPTION_DEBUG_INFO 內的例外碼、地址、參數。ContinueDebugEvent(pid, tid, DBG_EXCEPTION_NOT_HANDLED) 讓系統繼續處理(彈窗/終止)。注意:調試器附加需足夠權限(管理員/同用戶),且會影響目標進程效能。