- Регистрация
- 20 Мар 2022
- Сообщения
- 76
- Автор темы
- #1
В этом уроке мы научимся сделать так, чтобы программу, написанную на C#, можно было принудительно запустить с правами администратора
Теперь перейдем к реализации нашей задачи. Выполнять её мы будем через манифест программы. Изначально, в новой программе, его нет, по умолчанию он не создаётся. Давайте создадим его:
Зачем оно надо?
Вообще, права администратора позволяют программе многое, начиная от доступа к системным директориям, заканчивая большим доступом к другим процессам.
Типы разрешений, применяемые к программе
- asInvoker - приложение выполняется на том же уровне разрешений, что и процесс, который его запустил
- highestAvailable - приложение работает с наивысшим уровнем разрешений, который он может иметь
- requireAdministrator - приложение запускается с правами администратора
Реализация
Теперь перейдем к реализации нашей задачи. Выполнять её мы будем через манифест программы. Изначально, в новой программе, его нет, по умолчанию он не создаётся. Давайте создадим его:
- Листаем список до элемента "Файл манифеста приложения(только Windows)" и выбираем его(внизу можете выбрать свое имя файла манифеста программы)
- После создания и открытия файла мы видим перед собой небольшой XML файл, в котором описана некоторая важная информация для запуска нашей программы. Нам нужно то, где написано "Параметры манифеста UAC". По умолчанию в манифесте у нас включено разрешение "asInvoker", описывал которое я выше. В нашем случае нам нужно, чтобы программа принудительно запрашивала права администратора при запуске, для этого вместо строчки с "asInvoker" вставляем строчку с "requireAdministrator", которую мы скопировали из комментария(то, что зелёным цветом - комментарий в XML)