मैं निम्नलिखित कोड के साथ एक cmd कमांड को चलाने के लिए कोशिश कर रहा हूँ:भागो ऊपर उठाया प्रक्रिया
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process exec = Process.Start(cmd);
exec.StandardInput.WriteLine("sc create \"BaliService\" binPath= \"{0}\\BaliService.exe\"", Directory.GetCurrentDirectory());
यह आदेश व्यवस्थापक privelages की आवश्यकता है, अगर मैं व्यवस्थापक के रूप में चलाने के लिए और cmd आदेश लिखें यह पूरी तरह से काम करता है लेकिन जब मैं नहीं चला व्यवस्थापक के रूप में यह ऐप। मैं एक मैनिफ़ेस्ट फ़ाइल जो यूएसी हर बार मैं exe खोलने का संकेत देता है के लिए
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
जोड़ लिया है।
मैं इस पर कई सवाल को देखा है और वे सभी एक ऊंचा एप्लिकेशन के अंतर्गत चलाने के समान अधिकार होगा ऐसी कोई भी प्रक्रिया का सुझाव करने लगते हैं, लेकिन यह मेरे लिए काम नहीं कर रहा।
मैं cmd.Verb = "runas";
लेकिन कोई पासा कोशिश की है।
बदलने का प्रयास करें 'cmd.UseShellExecute' को' TRUE' और 'runas' क्रिया रहते हैं। – keyboardP
बस इसे करने की कोशिश की लेकिन इस त्रुटि 'प्रक्रिया वस्तु आदेश रीडायरेक्ट करने के लिए आईओ streams.' धन्यवाद में UseShellExecute संपत्ति गलत पर सेट होना आवश्यक हो गया। –
वह जगह है जहां हिरन रुक जाती है, आप दोनों तरीकों से नहीं हो सकते हैं। यूएसी एक उन्नत प्रक्रिया को हाई-जैकिंग से एक अपरिवर्तित प्रक्रिया को रोकता है। रीडायरेक्ट कर सकते हैं एकमात्र तरीका अपने आप को पहले उठाना है। –