Да, это так.Вам нужно перенаправить поток ввода порожденного процесса, чтобы вы могли писать в него напрямую:
var proc = new Process();
proc.StartInfo.FileName = "program.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.Start();
var sw = proc.StandardInput;
Теперь это запишет в стандартный ввод вашего процесса, как если бы вы набрали текст с клавиатуры:
sw.WriteLine("run something");
Наконец, когда вы закончите писать, не забудьте очистить:
sw.Close();
proc.WaitForExit();
proc.Close();