Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Запуск программы от имени администратора

.NET software developer
Мар
84
68
Пользователь
В этом уроке мы научимся сделать так, чтобы программу, написанную на C#, можно было принудительно запустить с правами администратора

Зачем оно надо?
Вообще, права администратора позволяют программе многое, начиная от доступа к системным директориям, заканчивая большим доступом к другим процессам.

Типы разрешений, применяемые к программе

  • asInvoker - приложение выполняется на том же уровне разрешений, что и процесс, который его запустил​
  • highestAvailable - приложение работает с наивысшим уровнем разрешений, который он может иметь​
  • requireAdministrator - приложение запускается с правами администратора​
Нам будет нужно как раз таки последнее разрешение для программы.

Реализация

Теперь перейдем к реализации нашей задачи. Выполнять её мы будем через манифест программы. Изначально, в новой программе, его нет, по умолчанию он не создаётся. Давайте создадим его:
  1. В обозревателе решений нажмем ПКМ по нашему проекту
    1661250375892.png
  2. Далее нажмём на "Добавить" -> "Создать элемент"
    1661250535493.png
  3. Листаем список до элемента "Файл манифеста приложения(только Windows)" и выбираем его(внизу можете выбрать свое имя файла манифеста программы)​
  4. После создания и открытия файла мы видим перед собой небольшой XML файл, в котором описана некоторая важная информация для запуска нашей программы. Нам нужно то, где написано "Параметры манифеста UAC". По умолчанию в манифесте у нас включено разрешение "asInvoker", описывал которое я выше. В нашем случае нам нужно, чтобы программа принудительно запрашивала права администратора при запуске, для этого вместо строчки с "asInvoker" вставляем строчку с "requireAdministrator", которую мы скопировали из комментария(то, что зелёным цветом - комментарий в XML)
    1661250980585.png
    1661251058651.png
  5. Готово
    1661251171997.png
    Осталось только купить сертификат Authenticode, чтобы быть проверенным издателем :3​
 
Сверху