2010-06-22 11 views
5

मेरे पास एक .NET एप्लिकेशन है जिसे कई निष्पादन योग्य चलाने की आवश्यकता है। मैं प्रक्रिया वर्ग का उपयोग कर रहा हूं, लेकिन प्रक्रिया। स्टार्ट ब्लॉक नहीं करता है। मुझे दूसरे रनों से पहले खत्म करने वाली पहली प्रक्रिया की आवश्यकता है। मैं यह कैसे कर सकता हूँ?मैं उसी आउटपुट को लक्षित करने, सिंक्रनाइज़ प्रक्रियाओं को कैसे चला सकता हूं?

इसके अलावा, मैं सभी प्रक्रियाओं को सभी कंसोल विंडो में आउटपुट करना चाहता हूं। जैसा कि है, वे अपनी खिड़कियां खोलने लगते हैं। मुझे यकीन है कि मैं कंसोल पर लिखने के लिए मानक आउटपुट स्ट्रीम का उपयोग कर सकता हूं, लेकिन मैं डिफ़ॉल्ट आउटपुट को कैसे दबा सकता हूं?

Process p = Process.Start("myapp.exe"); 
p.WaitForExit(); 

उत्पादन के लिए::

StreamReader stdOut = p.StandardOutput; 

तो फिर तुम किसी भी स्ट्रीम रीडर की तरह इसका इस्तेमाल

उत्तर

10

मैं आप देख रहे हैं विश्वास करते हैं।

ProcessStartInfo pi = new ProcessStartInfo("myapp.exe"); 
pi.CreateNoWindow = true; 
pi.UseShellExecute = true; 

// Also, for the std in/out you have to start it this way too to override: 
pi.RedirectStandardOutput = true; // Will enable .StandardOutput 

Process p = Process.Start(pi); 
+0

बिल्कुल सही:

खिड़की यह थोड़ा कठिन है को दबाने के लिए! आउटपुट पर कोई विचार? आउटपुट के लिए –

+0

अपडेट किया गया। – Aren

+0

लेकिन मैं कंसोल विंडो को कैसे दबा सकता हूं जो प्रत्येक प्रक्रिया के लिए पॉप अप करता है? –

संबंधित मुद्दे

 संबंधित मुद्दे