1:获取当前用户:
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
2:判断当前用户是否是管理员如果是则直接启动否则通过Process启动:
(如果不这样处理直接使用非admin权限对注册表进行编辑操作程序将报异常)
if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
//如果是管理员则直接启动
Application.Run(new Form1());
}
else
{
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo();
//启动的应用程序
startinfo.FileName = Application.ExecutablePath;
//设置启动动作,以管理员身份启动
startinfo.Verb = "run