HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: c#, права администратора при запуске приложения</p>
1 <p>Теги: c#, права администратора при запуске приложения</p>
2 <p>Часто бывают необходимы права администратора на выполнение программы. Узнать, обладает ли данная программа правами администратора, можно следующим образом.</p>
2 <p>Часто бывают необходимы права администратора на выполнение программы. Узнать, обладает ли данная программа правами администратора, можно следующим образом.</p>
3 WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);<p><strong>Запуск с правами администратора:</strong></p>
3 WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);<p><strong>Запуск с правами администратора:</strong></p>
4 ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска try { Process.Start(processInfo); //пытаемся запустить процесс } catch (Win32Exception) { //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7) } Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)<p>Второй способ - использовать манифест приложения, добавив в него строчку:</p>
4 ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска try { Process.Start(processInfo); //пытаемся запустить процесс } catch (Win32Exception) { //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7) } Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)<p>Второй способ - использовать манифест приложения, добавив в него строчку:</p>
5 &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&gt;<p>Источник<a>здесь</a></p>
5 &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="false" /&gt;<p>Источник<a>здесь</a></p>
6 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
6 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
7  
7