Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как запустить другое приложение?


Автор: Exception 1.5.2007, 12:36
Чтобы запустить из кода приложение, необходимо воспользоваться классом Process:

Код
using System.Diagnostics;


Код
Process.Start ("firefox.exe");


Для передачи параметров командной строки запускаемому приложению следует использовать перегруженную версию метода Start, принимающую два параметра:

Код

Process.Start ("firefox.exe", "-ProfileManager");


Этот код просто запускает программу. Если необходимо дождаться окончания выполнения процесса, нужно получить экземпляр созданного объекта Process и вызвать его метод WaitForExit:

Код

using (p = new Process ("firefox.exe"))
{
    p.Start ();
    p.WaitForExit ();
}


Метод WaitForExit также позволяет устанавливать время (в милисекундах), через которое ожидание прекращается (например, если процесс "завис"):

Код

using (p = new Process ("firefox.exe"))
{
    p.Start ();
    if (p.WaitForExit (10000))
    {
        Console.WriteLine ("Браузер был закрыт в течение 10 секунд с момента запуска");
    } else {
        Console.WriteLine ("10 секунд прошли!");
    }
}


Не забывайте вызывать метод Dispose или заключать код работы с процессом в конструкцию using!

Для установки каких-либо дополнительных параметров запуска следует использовать класс ProcessStartInfo:

Код

ProcessStartInfo startInfo = new ProcessStartInfo ("firefox.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
            
Process.Start (startInfo);
            
startInfo.Arguments = "http://forum.vingrad.ru/";
            
Process.Start (startInfo);


http://msdn2.microsoft.com/en-us/library/system.diagnostics.process.aspx.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)