Windows 7 и Vista контроль учётных записей - Программно запрос повышения в C#

У меня есть программа, которая только требует повышения Администратору в очень редких случаях, таким образом, я не хочу устанавливать свою декларацию для требования постоянного повышения.

Как я могу Программно запросить повышение только, когда мне нужно оно?

Я использую C#

22
задан Cœur 15 April 2017 в 18:56
поделиться

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;
}
26
ответ дан 29 November 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: