?

Log in

No account? Create an account
Dotnet_am

dotnet_am


C# и платформа .NET в вопросах и ответах

.NET технологии в Армении


Previous Entry Share Next Entry
3.2.3 Как запустить внешнюю программу и получить сигнал о ее завершении
Dotnet_am
dotnet_am
Если необходимо запустить из .NET-овского кода внешнюю программу, то делается это при помощи класса System.Diagnostics.Process.
Например так можно запустить калькулятор Windows.

System.Diagnostics.Process externalProg = new System.Diagnostics.Process();
externalProg.StartInfo.FileName = "calc.exe";
еxternalProg.Start();

Ну а что если мы хотим узнать, когда запущенная программа завершится?
Для этого нужно добавить обработчик события Exited для процесса.

System.Diagnostics.Process externalProg = new System.Diagnostics.Process();
externalProg.StartInfo.FileName = "calc.exe";
externalProg.EnableRaisingEvents = true;
externalProg.Exited += new EventHandler(prog_Exit);
externalProg.Start();

private static void prog_Exit(object sender, EventArgs e)
{
    MessageBox.Show("The program has been closed");
}

Добавлю также, что запущенное внешнее приложение можно так же завершить из .NET-кода. Для этого нужно вызвать метод Kill для процесса.

 externalProg.Kill(); 

Запускаемой программе можно передать параметры.

externalProg.StartInfo.Arguments = "-param1 -param2";
Tags: