Здравствуйте, EKup, Вы писали:
EK>Сорри, если неправильно формулирую
EK>Есть такая задача: написать прогу на с#, которая будет запускать программы из списка и перезапускать их в случае возникновения ошибки. Контролируемые программы написаны не мной и не на NET.
EK>Собстно у меня один вопрос: как отследить момент появления АшыПки в процессе? (момент, при котором выводится окно о невозможности дальнейшей работы программы, типа она будет закрыта и тд.)
Как вариант, можно перехватывать SEH-исключения — access violation, stack overflow и т.д.
Сделать это можно так:
static class Program
{
[STAThread]
static void Main()
{
Application.ThreadException +=
new ThreadExceptionEventHandler(Application_ThreadException);
// ... запускаем задачи
}
static void Application_ThreadException(Object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}