2016-08-11 62 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 –