2016-08-11 120 views
0

当我从命令提示符运行dism /Online /Disable-Feature:Microsoft-Hyper-V-All命令时,它工作正常。如何从C#代码作为管理员运行exe文件?

但是我想从C#代码做同样的事情。它不工作,流程,错误代码为11

Process proc = new Process(); 
proc.StartInfo.FileName = "dism.exe"; 
proc.StartInfo.Arguments = "/Online /Disable-Feature:Microsoft-Hyper-V-All"; 
proc.StartInfo.UseShellExecute = true; 
proc.StartInfo.CreateNoWindow = false; 
proc.StartInfo.Verb = "runas"; 
proc.Start(); 
proc.WaitForExit(); 
int exitCode = proc.ExitCode; 

存在基本上我想从运行C#代码(与UAC)给定的命令,因为它与命令提示符工作。

回答

1

你不能。也就是说,作为一名程序员,您无法决定您的代码是否具有管理权限。但是,您可以通知用户您的代码需要管理权限,然后要求获得这些权限。如何做到这一点是covered here

+0

这并没有解决我的问题,仍然得到错误代码11 –

1

试试这个方法,

你要修改被嵌入在程序清单。这适用于Visual Studio 2008及更高版本:Project +添加新项目,选择“应用程序清单文件”。更改元素:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
+0

这并没有解决我的问题,仍然得到错误代码11 –