Для вашего немедленного вопроса в последних версиях .NET нет ничего нового, который дает лучший или более современный способ запуска локального исполняемого файла. Process.Start (и был) способ пойти.
Простейшим и наиболее удобным является выбор одного из пяти статических методов процесса. Передача строк или заполненный экземпляр StartInfo. Вы бы использовали последний, если вам нужно было больше контролировать, как процесс был поднят. Или интерес к вашему делу, если вы хотите передать stdio программы в виде потока в свое приложение. Вот образец заполнения экземпляра Start Информация от одного из моих утилит ...
ProcessStartInfo start = new ProcessStartInfo(BaseIoConstantsProvider.CommandProcessor)
{
Arguments = BaseIoConstantsProvider.KeepAlive,
UseShellExecute = false,
CreateNoWindow = BaseIoConstantsProvider.NoDosWindow,
RedirectStandardOutput = true,
RedirectStandardInput = true,
RedirectStandardError = true,
WindowStyle = ProcessWindowStyle.Hidden,
};
Для второй части Вашего вопроса, то статический метод не будет делать, если вам нужно, чтобы взаимодействовать с процессом после запуска , Из той же утилиты ...
Process p = new Process { StartInfo = start, EnableRaisingEvents = true };
p.ErrorDataReceived += PErrorDataReceived;
p.Exited += PExited;
p.Start();
p.StandardInput.AutoFlush = true;
p.StandardInput.WriteLine(cmdLine);
p.BeginOutputReadLine();
В этом примере показано, что два события подключаются вместе с чтением stdio из процесса. Это здорово для этой цели, но излишнее, если вы просто хотите запустить другой исполняемый файл.
Таким образом, основным детерминированным в выборе метода запуска является вопрос: нужно ли моему приложению взаимодействовать с процессом после его запуска?
И, наконец, иногда вы можете захотеть вызвать канонический глагол или даже создать собственный собственный глагол, чтобы начать заданный процесс. Они отображаются в контекстном меню при щелчке правой кнопкой мыши по элементу и дают вам дополнительную гибкость для запуска процесса. Здесь есть отличная статья http://msdn.microsoft.com/en-us/library/windows/desktop/cc144101(v=vs.85).aspx#canonical о том, как реализовать глагол.
Вы используете статический метод или тот, который берет начальную информацию? –
Пожалуйста, ясно объясните, что вы подразумеваете под «общением с ним». Какую коммуникацию вы ожидаете выполнить? – Sheridan
@GarryVass, либо, я не уверен, как они отличаются, за исключением того, что информация о запуске позволяет более подробно рассказать. – Jordan