首先,運行您的Visual Studio作爲管理員,並嘗試在一個控制檯應用程序代碼(運行與調試應用程序):
static void Main(string[] args)
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = @"CMD.EXE";
p.StartInfo.Arguments = @"/C bcdedit";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
// parse the output
var lines = output.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Where(l => l.Length > 24);
foreach (var line in lines)
{
var key = line.Substring(0, 24).Replace(" ", string.Empty);
var value = line.Substring(24).Replace(" ", string.Empty);
Console.WriteLine(key + ":" + value);
}
Console.ReadLine();
}
然而,有一個問題,如果你想啓動的時候這個工作從高架的Visual Studio之外的應用程序,你需要配置你的應用程序,要求提升權限:
在您的項目,單擊添加新的項目,然後選擇應用程序清單文件。
打開app.manifest文件,並替換此行:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
這一個:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
你試圖從不與管理員權限運行的應用程序獲得這些價值? – MarcinJuraszek
我可以做到這一點,無論哪種方式最好。 –
我想你可以使用[Process.StandardOutput](http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput(v = vs.110).aspx ) –