2010-08-16 4 views
7

Je dois exécuter une application de console à partir de mon application Windows. L'application de la console que je veux courir est une ressource incorporée dans ma demande, et je l'appelle comme ceci:La fenêtre de la console apparaît toujours même après 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(); 

Il extrait très bien, et il fonctionne très bien, et il saisit aussi sa sortie complètement fin ... mais je peux toujours voir la fenêtre de la console s'ouvrir rapidement pendant qu'elle est exécutée. Je sais que la console apparaît à partir de cette application parce que le titre de la console est C:\tmp\tmp.exe. Existe-t-il un moyen complètement à l'épreuve des échecs pour cacher l'application de console? Je pensais utiliser ProcessWindowStyle.Hidden le ferais mais apparemment pas.

Merci.

+0

répond à cette question, s'il vous plaît fermer votre fil. –

+0

@Hans Passant - Est-ce que ma réponse peut être acceptée si j'ai touché le rep rep pour la journée? – fletcher

+1

@fletch: bien sûr, pas de limite aux points de repères. –

Répondre

16

Définissez la propriété ProcessStartInfo.CreateNoWindow à true

+0

Ah, je l'avais déjà utilisé mais je ne pensais pas que cela faisait une différence quand j'ai utilisé 'ProcessWindowStyle.Hidden'. Et j'avais besoin de le mettre à vrai, pas faux. Merci beaucoup! :) – Kratz

+1

Oui, il se fait tard ici. J'ai foiré, doubles négatifs ... – fletcher

+0

est-ce aussi bien ou au lieu de? – barlop

Questions connexes