Para quem tenha a necessidade de executar um determinado processo programaticamente (por exemplo, correr um .vbs para registar um evento numa mailbox de exchange server), sem abrir qualquer janela de command line, e também não queira que o respectivo output seja visualizado, mas sim guardado numa variável, para posterior manipulação, aqui fica a dica:
Process process =
new Process();
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
bool runOk = process.Start();
if (runOk)
{
output = process.StandardOutput.ReadToEnd();
}