Вы не можете повысить уровень процесса после его запуска, но вы можете либо: -
Перезапустите процесс с повышенными правами
private void elevateCurrentProcess()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.FileName = Application.ExecutablePath;
startInfo.Verb = "runas";
try
{
Process p = Process.Start(startInfo);
}
catch
{
// User didn't allow UAC
return;
}
Application.Exit();
}
Этот метод означает, что ваш процесс продолжает работать с повышенными правами, и больше не выдается UAC - как хорошая, так и плохая вещь, зависит от вашей аудитории.
Поместите код, требующий повышения, в отдельный exe
Установите манифест как requireAdministrator и запустите его как отдельный процесс. Посмотрите этот пример кода
Этот метод означает приглашение UAC при каждом запуске операции.
Лучший метод зависит от вашей аудитории (типы администраторов или нет) и частоты повышенных операций.