Windows 7 - отключить закрытие диалогового окна программы / отладки, но выгрузить дамп и уведомить пользователя - PullRequest
4 голосов
/ 19 июля 2011

Я занимаюсь разработкой коммерческого настольного приложения для Windows 7 (несколько сжатый, но не совсем).Приложение содержит компоненты Windows Service и пользовательский интерфейс WPF.В случае сбоя нашего приложения на сайте клиента мы хотим иметь возможность собирать информацию о среде выполнения, в том числе аварийный дамп наших процессов, в расположение дампов.Эта информация может быть передана нашему персоналу поддержки по запросу для дальнейшего расследования.Мы также хотим отключить любые сообщения об ошибках Windows и Отправить в Microsoft , которые могут появиться в результате сбоя.

Важно то, что мы толькохочу, чтобы это влияло на наши процессы подачи заявок.Мы не хотим влиять на некоторые глобальные параметры, которые изменят способ, которым все другие приложения на рабочем столе клиентов сообщают о фатальных ошибках.

Я ищу некоторые предложения и рекомендации для выполнения подобных действий внанесение термоусадочной пленки.

1 Ответ

3 голосов
/ 19 июля 2011

Лучший способ узнать, как это сделать - подписаться на событие AppDomain.CurrentDomain.UnhandledException.Там вы сможете использовать функцию Win32 API MiniDumpWriteDump для создания собственного файла мини-дампов.Прочтите этот пост , чтобы увидеть хороший пример.Кроме того, есть библиотека ClrDump .

Перед выходом из обработчика UnhandledException, вызовите Environment.Exit () , и вы не увидите больше ошибки Windowsдиалогов.

Я сам еще не использовал эти библиотеки минидампов, но скоро буду.Надеемся, что этот ответ, по крайней мере, даст вам несколько ключевых слов, которые вы можете подключить к Google.

...