c sharp exe должен запрашивать приглашение «Запуск от имени администратора» при открытии - PullRequest
7 голосов
/ 10 января 2012

У меня исполняемый файл, сгенерированный программой AC Sharp.когда я запускаю exe, я хочу, чтобы появилось приглашение UAC с возможностью запуска exe от имени администратора.Я видел примеры запуска exe как администратора по умолчанию.Но как мне разрешить UAC запрашивать у меня запуск exe от имени администратора?Есть идеи?

Ответы [ 4 ]

7 голосов
/ 10 января 2012

Вам необходимо добавить «Файл манифеста приложения». Пошаговая инструкция

  • Щелкните правой кнопкой мыши по проекту
  • Добавьте «Новый элемент»
  • Выберите «Файл манифеста приложения»
  • Найти это
  • change level = "requireAdministrator"
6 голосов
/ 10 января 2012

в Visual Studio добавьте «Файл манифеста приложения» (если у вас его нет), затем добавьте в него <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> , чтобы запросить права администратора при запуске приложения.

4 голосов
/ 10 января 2012

Windows Vista / 7 / Server 2008 R2 использует технологию контроля учетных записей (UAC) для обеспечения безопасности и защиты ОС от вредоносных программ путем ограничения привилегий приложения до разрешения администратора. Это причина, почему мы должны заставить наше приложение работать от имени администратора. Обычно это делается во время работы приложения. Процесс, щелкните правой кнопкой мыши на приложении и выберите «Запуск от имени администратора», чтобы запустить приложение с правами администратора. Если предположить, что пользователь забыл это сделать и нормально запустить приложение, то может возникнуть непредвиденное поведение. Поскольку все действия, требующие административных привилегий в Win Vista и выше (например, вызов процесса, использование системного диска и т. Д.), Не будут выполнены.

Таким образом, чтобы не запускать приложение от имени администратора каждый раз, мы можем заставить наше приложение работать от имени администратора по умолчанию. Чтобы добиться этого, нам нужно немного изменить манифест приложения. Манифест приложения - это XML-файл, описывающий приложение.

Следуйте инструкциям, чтобы приложение .net запускалось от имени администратора:

Шаг 1. Перейдите в свойства проекта и нажмите кнопку «Просмотр параметров Windows». Откроется файл «app.manifest».

Шаг 2: В ключе requiredExecutionLevel измените значение уровня на «requireAdministrator» и значение uiAccess на «False». Установка уровня «requireAdministrator» означает, что приложение запускается только для администраторов и требует, чтобы приложение запускалось с маркером полного доступа администратора. Установка uiAccess в значение «False» означает, что приложению не нужно вводить данные в пользовательский интерфейс другого окна на рабочем столе. Приложения, которые не обеспечивают доступность, должны установить этот флаг в false. Приложения, которые требуются для ввода данных в другие окна на рабочем столе (например, на экранной клавиатуре), должны установить для этого значения значение true.

Шаг 3. Сохраните изменения, пересоберите приложение и установите его на Windows Vista или более поздней версии.

Теперь приложение автоматически запускается от имени администратора.

1 голос
/ 10 января 2012

Вы можете использовать класс ProcessStartInfo или принципал Windows для достижения этой цели.

Вы также можете встроить файл манифеста в ваше приложение .exe и установить свойство requestedExecutionLevel.

Существует также способ включить / отключить UAC через реестр Windows .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...