मैं System.Diagnostics.Process क्लास का उपयोग करके एक रिमोट मशीन पर प्रक्रिया बनाने की कोशिश कर रहा हूं। मैं एक प्रक्रिया बनाने में सक्षम हूं। लेकिन समस्या यह है कि, एक सेवा बनाने में एक लंबा समय लगता है और कंसोल विंडो प्रदर्शित होती है। एक और कष्टप्रद बात यह है कि मेरे विंडो फॉर्म के शीर्ष पर कंसोल विंडो प्रदर्शित होती है और मैं उस फॉर्म पर कोई अन्य ऑपरेशन नहीं कर सकता। मैंने सभी गुण सेट किए हैं जैसे CreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
लेकिन फिर भी यह कंसोल विंडो को दिखाता है। यहां तक कि मैं स्ट्रीम को अलग करने के लिए आउटपुट और त्रुटियों को पुनर्निर्देशित करता हूं लेकिन कोई भाग्य नहीं।
क्या कंसोल विंडो को छिपाने का कोई अन्य तरीका है? कृपया मेरी मदद करें ।
यहाँ मेरे कोड का एक हिस्सा है जिसका इस्तेमाल मैंने sc कमांड को निष्पादित करने के लिए किया है।
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
UseShellExecute
और CreateNoWindow
दो बार?
proc.StartInfo.RedirectedStandardOutput = true
? मैंने एक विंडोज एप्लीकेशन के साथ काम करने के लिए इसे प्राप्त किया है।