Я использую 2008 VSTS + C# +.Net 3.5 для разработки консольного приложения. И я хочу запустить внешний процесс (EXE-файл) из моего приложения C#, и я хочу, чтобы текущее приложение C# было заблокировано до внешних остановок процесса, и я также хочу получить код возврата внешнего процесса.
Какие-либо идеи, как реализовать это? Цените если некоторые примеры кода.
public static String ShellExec( String pExeFN, String pParams, out int exit_code)
{
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(pExeFN, pParams);
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false; // the process is created directly from the executable file
psi.CreateNoWindow = true;
using (System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi))
{
string tool_output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
exit_code = p.ExitCode;
return tool_output;
}
}
всю необходимую документацию вы найдете здесь: http://msdn.microsoft.com/en-us/library/system.diagnostics .processstartinfo (VS.80) .aspx
using (var process = Process.Start("test.exe"))
{
process.WaitForExit();
var exitCode = process.ExitCode;
}