2010-08-16 19 views
7

Devo eseguire un'applicazione console dall'applicazione Windows. L'applicazione console voglio correre è una risorsa incorporata nella mia richiesta, e sto chiamando in questo modo:La finestra della console appare ancora dopo ProcessWindowStyle.Hidden;

// 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(); 

Estrae bene, e funziona benissimo, e afferra anche la sua uscita completamente bene ... ma posso ancora vedere la finestra della console che si apre rapidamente mentre viene eseguita. So che la console appare da questa applicazione perché il titolo della console è C:\tmp\tmp.exe. Esiste un metodo completamente a prova di errore per nascondere l'applicazione della console? Pensavo che usare ProcessWindowStyle.Hidden lo facesse ma apparentemente no.

Grazie.

+0

è risposto a questa domanda, si prega di chiudere il thread. –

+0

@Hans Passant - La mia risposta può essere accettata se ho raggiunto il cap di rep per il giorno? – fletcher

+1

@fletch: sicuro, nessun limite sui punti del segno di risposta. –

risposta

16

Impostare la ProcessStartInfo.CreateNoWindow proprietà true

+0

Ah, l'avevo già usato prima, ma non pensavo facesse la differenza quando usavo 'ProcessWindowStyle.Hidden'. E avevo bisogno di impostarlo su true, non false. Grazie mille! :) – Kratz

+1

Sì, si sta facendo tardi qui. Ho incasinato, doppio negativo ... – fletcher

+0

è anche quello o al posto di? – barlop

Problemi correlati