Обрабатывать сбой стороннего приложения? - PullRequest
1 голос
/ 14 марта 2011

Из моего приложения я использую COM API для звонков в другое приложение. Это приводит к тому, что другое приложение запускается в своем собственном процессе и выполняет некоторые действия. Иногда эти вещи идут плохо, и приложение взрывается. Я прекрасно справляюсь с ошибкой, возвращающейся из COM; но, другой сбой процесса приложения вызывает всплывающее диалоговое окно на компьютере, спрашивающее, должен ли процесс быть убит, или помощь, отправленная в Microsoft, или что-то еще. Этот сервер не контролируется; там никого нет Как мне отключить этот диалог, когда он появляется в чужом приложении?

1 Ответ

0 голосов
/ 14 марта 2011

Взгляните на Функции отладки в MSDN.Я не проверял этот подход, но я думаю, что вы сможете добиться того, чего хотите, используя DebugActiveProcess, WaitForDebugEvent, ContinueDebugEvent и FatalExit.Идея заключалась бы в том, чтобы дождаться события отладки, и если это то, что вам нужно - в данном случае необработанное исключение (dwFirstChance в EXCEPTION_DEBUG_INFO равно нулю) - завершить процесс с FatalExit, в противном случае продолжить выполнениес ContinueDebugEvent.

Как я уже сказал, это просто идея, я ее не проверял.Кроме того, совет Олега намного проще, если вы не против отключить диалоговое окно «Отчет об ошибках Windows» для всей машины.

...