Консольное окно все еще появляется, даже после ProcessWindowStyle.Hidden; - PullRequest
7 голосов
/ 17 августа 2010

Мне нужно запустить консольное приложение из моего приложения Windows. Консольное приложение, которое я хочу запустить, является встроенным ресурсом в моем приложении, и я называю его так:

// Run the updater and grab its output
Process Updater = new Process();
Updater.StartInfo.FileName = "C:\\tmp\\tmp.exe";
Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Updater.StartInfo.UseShellExecute = false;
Updater.StartInfo.RedirectStandardOutput = true;
Updater.Start();
string UpdaterOutput = Updater.StandardOutput.ReadToEnd();
Updater.WaitForExit();

Он извлекает нормально, и он работает нормально, а также полностью захватывает вывод ... но я все еще вижу, как окно консоли быстро открывается при запуске. Я знаю, что всплывающее окно консоли из этого приложения, потому что заголовок консоли - C:\tmp\tmp.exe. Есть ли какой-нибудь полностью отказоустойчивый способ скрыть консольное приложение? Я думал, что использование ProcessWindowStyle.Hidden сделает это, но, очевидно, нет.

Спасибо.

1 Ответ

16 голосов
/ 17 августа 2010

Установите для свойства ProcessStartInfo.CreateNoWindow значение true

...