【发布时间】:2016-05-14 07:19:35
【问题描述】:
我正在尝试以管理员身份从启动开始运行我的应用程序。为此,我编写了以下代码:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
Application.Run(new HomePage());
}
else
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.FileName = Application.ExecutablePath;
startInfo.Verb = "runas";
try
{
System.Diagnostics.Process.Start(startInfo);
Application.Exit();
}
catch
{
return;
}
Application.Exit();
}
Application.Run(new HomePage());
这是我的 program.cs 文件。问题是当我运行它时,它带有两个相同的应用程序。我尝试了很多方法,但都没有解决。
是否可以从一开始就以管理员身份运行我的应用程序而不会引发以管理身份运行的对话?
【问题讨论】: