Загляните в класс System.Diagnostics.Process
.Process.Start()
запустит новый процесс (с аргументами, если хотите - есть несколько перегрузок), Process.WaitForExit()
будет ожидать его завершения, а свойство ExitCode
вернет код выхода.Все самодокументирование, не правда ли?