Как программа запрашивает права администратора? - PullRequest
3 голосов
/ 18 сентября 2008

Я работаю над небольшим приложением в VB.NET. Для выполнения некоторых задач программе требуются права администратора. Есть ли способ запросить права администратора во время выполнения, если программа?

Как обычно изменяется учетная запись пользователя, под которым работает приложение?

Ответы [ 4 ]

7 голосов
/ 18 сентября 2008

Вы можете указать это в файле манифеста вашего приложения.

Проверьте эту ссылку и эту ссылку и эту ссылку тоже.

3 голосов
/ 18 сентября 2008

Есть несколько методов в зависимости от ваших потребностей. Некоторые подробности приведены в требованиях разработчика приложений для UAC .

  1. Включите манифест UAC, который заставляет вашу программу требовать прав администратора при запуске.
  2. Используйте один из предложенных методов для вызова возвышения, чтобы закончить процесс. Один из самых хороших - использовать обозначение возвышения COM и CoCreateInstanceAsAdmin для вызова методов COM-объекта, работающего от имени администратора. Это может быть сложно получить работу в VB.Net. Я получил это работает нормально в C ++, хотя
  3. Еще один приемлемый метод - изолировать части вашего кода, которым требуются права администратора, в приложение, которое использует манифест UAC для получения прав администратора. В этом случае ваше основное приложение не должно запускаться от имени администратора. Когда вам требуются права администратора, вы вызываете внешнее приложение.
1 голос
/ 26 июля 2010
 Try
                    Dim procInfo As New ProcessStartInfo()
                    procInfo.UseShellExecute = True
                    procInfo.FileName = 'Filename here
                    procInfo.WorkingDirectory = ""
                    procInfo.Verb = "runas"
                    Process.Start(procInfo)
                Catch ex As Exception
                    MsgBox(ex.Message.ToString(), vbCritical)
                End Try
            End If
0 голосов
/ 21 мая 2011

Самый простой способ сделать это - щелкнуть на вкладке «Проект» -> «Добавить форму Windows» -> .XML-файл -> назвать его (имя программы) .manifest -> вставить этот код в эту ссылку в него (спасибо JDOConal) -> затем щелкните правой кнопкой мыши на имени вашего проекта в окне обозревателя решений справа и нажмите Свойства -> на первой вкладке выберите манифест, а затем созданный вами файл .manifest -> build = done!

...