سؤال

ولدي الإعداد الاستوديو البصري ومشروع نشر. واضاف لقد النصي .CMD في ذلك. السيناريو سوف تحتاج امتيازات المسؤول لتشغيل. عندما ينقر المستخدم على SETUP.EXE، UAC يطالب المستخدم للحصول على أذونات المسؤول. لذلك أنا افترض أن جميع العمليات التي تم إنشاؤها، ودعا في SETUP.EXE سيتم تشغيل في قدرة مشرف. لذلك جعل الإعداد دعوة طلبي وحدة التحكم الذي يحتوي على التعليمات البرمجية التالية.

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);

لذلك ينبغي أن عملت كما يتم تشغيله تحت الفضاء المسؤول.

وأريد أن أشغل CMD.EXE من خلال ج الطبقة # العملية بوصفها administrator.I'm تشغيل ويندوز فيستا.

وحاولت لم تنجح! ماذا يمكنني أن أفعل؟

هل كانت مفيدة؟

المحلول

وحاول تنفيذ runas <م> الأمر :

...

using System.Diagnostics;

...

string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
  p1.FileName = "runas";
  p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);

...

(وأنا لا أعتقد أنك بحاجة إلى UseShellExecute واضح)

نصائح أخرى

ومجرد محاولة ذلك، عمل هذا بالنسبة لي.

...

using System.Diagnostics;

...

ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.UseShellExecute = true;            
  startInfo.Verb = "runas";
  startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);

...

وأشوتوش

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top