Re: Отслеживание ошибки в двоичном процессе
От: Аноним  
Дата: 10.04.07 12:25
Оценка:
Здравствуйте, 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);
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.