Windows 7和Vista UAC-以编程方式在C#中请求提升

我有一个程序,在极少数情况下只需要提升管理员权限,因此我不想将清单设置为需要永久提升。

如何仅在需要时以编程方式请求海拔?

我正在使用C#

回答:

WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());

bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);

if (!hasAdministrativeRight)

{

RunElevated(Application.ExecutablePath);

this.Close();

Application.Exit();

}

private static bool RunElevated(string fileName)

{

//MessageBox.Show("Run: " + fileName);

ProcessStartInfo processInfo = new ProcessStartInfo();

processInfo.Verb = "runas";

processInfo.FileName = fileName;

try

{

Process.Start(processInfo);

return true;

}

catch (Win32Exception)

{

//Do nothing. Probably the user canceled the UAC window

}

return false;

}

以上是 Windows 7和Vista UAC-以编程方式在C#中请求提升 的全部内容, 来源链接: utcz.com/qa/397440.html

回到顶部