2010-08-16 17 views
7

Muszę uruchomić aplikację konsoli z mojej aplikacji systemu Windows. Aplikacja konsoli chcę uruchomić to osadzonego zasobu w mojej aplikacji i wzywam go tak:Okno konsoli wciąż pojawia się nawet po 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(); 

Wydobywa porządku, i to działa dobrze, a także porywa jego produkcja zupełnie w porządku ... ale wciąż widzę, że okno konsoli otwiera się szybko, gdy jest uruchamiane. Wiem, że wyskakujące okno konsoli pochodzi z tej aplikacji, ponieważ tytuł konsoli to C:\tmp\tmp.exe. Czy jest jakiś całkowicie odporny na awarię sposób ukrywania aplikacji konsoli? Pomyślałem, że użycie ProcessWindowStyle.Hidden może to zrobić, ale najwyraźniej nie.

Dzięki.

+0

to pytanie odpowiada, proszę zamknąć wątek. –

+0

@Hans Passant - Czy moja odpowiedź może zostać zaakceptowana, jeśli trafiam na czapkę na cały dzień? – fletcher

+1

@fletch: pewnie, bez ograniczenia na punkty znacznika odpowiedzi. –

Odpowiedz

16

Ustaw ProcessStartInfo.CreateNoWindow nieruchomość do true

+0

Ah, użyłem tego wcześniej, ale nie sądziłem, że robi to różnicę, gdy użyłem 'ProcessWindowStyle.Hidden'. I musiałem ustawić to na true, a nie false. Dziękuję bardzo! :) – Kratz

+1

Tak, robi się późno. Zawiedziłem, podwójne negatywy ... – fletcher

+0

czy to też, czy zamiast? – barlop

Powiązane problemy