2012-12-24 21 views
12

यह काम करता है:प्रक्रिया क्यों शुरू होती है। स्टार्ट ("cmd.exe", प्रक्रिया); काम नहीं?

Process.Start("control", "/name Microsoft.DevicesAndPrinters"); 

लेकिन यह नहीं करता है: (यह सिर्फ एक कमांड प्रॉम्प्ट खुल जाता है।)

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 

क्यों?

(हाँ, मुझे पता है कि वे समान नहीं कर रहे हैं। लेकिन दूसरा एक काम करते हैं। "चाहिए")

+0

यह मेरे लिए ठीक काम करता है। आपकी त्रुटि क्या है? –

+2

@ SonerGönül कोई त्रुटि नहीं। जैसा कि मैंने लिखा - यह सिर्फ एक कमांड प्रॉम्प्ट खोलता है। इसे डिवाइस और प्रिंटर खोलना चाहिए। (क्या आपका मतलब है कि यह आपके लिए _that_ है?) – ispiro

उत्तर

29

इसका कारण यह है cmd.exe एक /K स्विच एक पर अमल करने की उम्मीद है की कोशिश करो प्रक्रिया एक तर्क के रूप में पारित किया। नीचे दिए गए कोड का प्रयास करें

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "/K control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 

संपादित करें: ऊपर /K पर बदला गया। यदि आप कमांड चलाने के बाद cmd.exe चाहते हैं तो आप /C स्विच का उपयोग कर सकते हैं।

1

यह एक

ProcessStartInfo info = new ProcessStartInfo("control"); 
info.Arguments = "/name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 
+0

मुझे पता है। लेकिन मैं विशेष रूप से कमांड लाइन _and_ परिणाम देखना चाहता हूं। – ispiro

6

आपको /c या /k स्विच (cmd.exe के लिए विकल्प) की आवश्यकता है ताकि आदेश निष्पादित किया जा सके। आज़माएं:

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.Arguments = "/c control /name Microsoft.DevicesAndPrinters"; 
Process.Start(info); 
संबंधित मुद्दे