我编写了一个WinForms C#应用程序,它需要管理员权限才能工作,还需要从计算机启动(使用注册表)开始。
RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
reg.SetValue("My app", Application.ExecutablePath.ToString());
所以我尝试将清单更改为requiredAdministrator
并收到有关clickOnce的错误,我完全不理解。所以我尝试发布应用程序并以管理员身份进行安装,但是当应用程序在启动时启动时,它不再具有管理员权限。
任何人都知道如何获得好的管理员权限?
答案 0 :(得分:1)
你可以去快捷方式=>属性=>高级... =>选中以管理员身份运行
现在,您已配置快捷方式以使用管理员权限启动应用程序。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以尝试使用自升式,不确定它将如何查找自动启动应用程序(与@peer答案相同)
// at application start
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
// if not admin - elevate
if(!isAdmin)
{
var info = new ProcessStartInfo(Application.ExecutablePath) { Verb = "runas" };
Process.Start(info);
return; // exit
}
// if we are here - application runs as admin
...