Возврат в меню после выполнения или отмены внешнего приложения

Я пишу интерфейс, который ссылается на несколько внешних утилит и антивирусных приложений. В этом случае у меня есть одно меню с опциями для таких вещей, как Malwarebytes, CCleaner, Windirstat и т. д.

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

Что мне нужно, так это чтобы основной интерфейс вернулся, чтобы я мог выбрать другой инструмент, если я отменю или закончу.

Вот основная часть моего кода на данный момент. Имейте в виду, что я программирую на c# уже все 3 дня:

private void ccleanerButton_Click(object sender, EventArgs e)
{
    //set p as new process
    Process p = new Process();
    //select the process file name
    p.StartInfo.FileName = "ccsetup.exe";
    //Start things up
    p.Start();          
}

Когда я отлаживаю (в Visual Studio C# 2010 Express), "p.Start();" это то, что выделяется. Как вы понимаете, это простой вызов процесса. Я облазил весь Google, этот форум и другие, но, кажется, я не задаю правильных вопросов.


person Hallofo    schedule 14.06.2012    source источник
comment
Вот ссылка msdn, которая может помочь: support.microsoft.com/kb/305369.   -  person gooch    schedule 15.06.2012
comment
Не могли бы вы включить полное сообщение об ошибке, которое вы получаете?   -  person THE DOCTOR    schedule 15.06.2012


Ответы (2)


Правильный способ закрыть процессы — использовать CloseMainWindow если вы хотите закрыть главное окно графического интерфейса и все дочерние окна или Kill, если вы хотите закрыть дочернее окно вашего графического интерфейса.

person THE DOCTOR    schedule 14.06.2012
comment
Спасибо за ваши комментарии, но не радость. Tergiver — система отлично находит файл (я импортировал .exe в Visual Studios). Он также запускается нормально, но если я отменю внешнюю программу, все рухнет. Доктор — я пробовал это (оба варианта), но он все еще не обрабатывается дальше p.Start(); линия. - person Hallofo; 15.06.2012
comment
@Hallofo, так почему бы тебе не поймать это исключение и не проглотить его? - person Tergiver; 15.06.2012
comment
Тергивер делает хорошее замечание. Вот ссылка на обработку исключений в C#, если вы с ней не знакомы: msdn.microsoft.com/en-us/library/0yd65esw%28v=vs.80%29.aspx - person THE DOCTOR; 15.06.2012

Психический отладчик включен. . .

Process.Start выдает исключение Win32Exception с сообщением «Системе не удается найти указанный файл».

Решение: Задайте для StartInfo.Filename полный путь к файлу, который вы хотите выполнить.

person Tergiver    schedule 14.06.2012