Скрыть окно отчета об ошибках - PullRequest
2 голосов
/ 04 мая 2009

У меня следующая проблема:
Мое приложение ASP.Net получает исходный код C ++ простой консольной программы, компилирует его с помощью cl.exe (компилятор командной строки VC ++) и запускает его с помощью System.Diagnostics.Process.

Приложение ASP.Net запускается на ПК, который можно использовать для другой работы (это не сервер, а просто рабочая машина). Я скрываю окно запущенной программы от пользователя (используя свойства Process.CreateNoWindow и Process.WindowStyle = ProcessWindowStyle.Hidden), но иногда полученный источник может содержать некоторую инструкцию сбоя (например, доступ к неверному адресу памяти или что-то еще), и программа зависала В этом случае Windows показывает окно «Отчет об ошибках» (если это Vista - окно с сообщением «Windows проверяет решение проблемы ...»), что отвлекает пользователя и сбивает его с толку.

Может быть, есть какой-нибудь способ запретить показ этого сообщения или автоматически закрыть его? Я много гуглю о WinAPI, но не могу найти решение. Если это невозможно для одного процесса - может быть, я могу временно отключить эти окна во всей системе?

Ответы [ 2 ]

1 голос
/ 05 мая 2009

Начиная с Windows Vista, вы можете использовать функцию WinAPI WerAddExcludedApplication, чтобы отключить «Отчеты об ошибках Windows» для конкретного приложения.

См .: http://msdn.microsoft.com/en-us/library/bb513617(VS.85).aspx

В версиях Windows до Vista необходимо было использовать функцию AddERExcludedApplication.

См .: http://msdn.microsoft.com/en-us/library/bb513614(VS.85).aspx

0 голосов
/ 05 мая 2009
...