मैं एक विंडोज फॉर्म एप्लिकेशन विकसित कर रहा हूं जिसके लिए मुझे एक कार्य करने के लिए एक अलग प्रोग्राम कॉल करने की आवश्यकता है। कार्यक्रम एक कंसोल एप्लिकेशन है और मुझे कंसोल से मानक आउटपुट को अपने प्रोग्राम में टेक्स्टबॉक्स में रीडायरेक्ट करने की आवश्यकता है।अलग प्रोग्राम में टेक्स्टबॉक्स में कंसोल आउटपुट रीडायरेक्ट करें
मुझे अपने आवेदन से प्रोग्राम निष्पादित करने में कोई समस्या नहीं है, लेकिन मुझे नहीं पता कि आउटपुट को मेरे एप्लिकेशन में रीडायरेक्ट कैसे करें। घटनाओं का उपयोग कर प्रोग्राम चल रहा है, जबकि मुझे आउटपुट कैप्चर करने की जरूरत है।
कंसोल प्रोग्राम तब तक चलने के लिए नहीं है जब तक कि मेरा एप्लिकेशन बंद न हो और पाठ यादृच्छिक अंतराल पर लगातार बदल जाता है। मैं जो करने का प्रयास कर रहा हूं वह कंसोल से एक इवेंट हैंडलर ट्रिगर करने के लिए बस हुक आउटपुट है जिसे टेक्स्टबॉक्स को अपडेट करने के लिए उपयोग किया जा सकता है।
मैं प्रोग्राम को कोड करने और विकास के लिए .NET ढांचे का उपयोग करने के लिए सी # का उपयोग कर रहा हूं। मूल एप्लिकेशन एक .NET प्रोग्राम नहीं है।
संपादित करें: यहां उदाहरण का कोड है जो मैं करने की कोशिश कर रहा हूं। मेरे अंतिम ऐप में, मैं टेक्स्टबॉक्स को अपडेट करने के लिए कोड के साथ Console.WriteLine को प्रतिस्थापित करूंगा। मैंने अपने इवेंट हैंडलर में ब्रेकपॉइंट सेट करने का प्रयास किया, और यह भी नहीं पहुंचा।
void Method()
{
var p = new Process();
var path = @"C:\ConsoleApp.exe";
p.StartInfo.FileName = path;
p.StartInfo.UseShellExecute = false;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
}
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(">>> {0}", e.Data);
}
है की मेरी संशोधन है कहाँ 'है InputDataReceived'? –