Windows 7 and Vista UAC - Programmatically requesting elevation in C#

匿名 (未验证) 提交于 2019-12-03 01:18:02

问题:

I have a program that only requires elevation to Admin on very rare occasions so I do not want to set-up my manifest to require permanent elevation.

How can I Programmatically request elevation only when I need it?

I am using C#

回答1:

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; } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!