Как запустить приложение с повышенными привилегиями в Vista+ с помощью Java/JNA для запуска UAC

Я хотел бы программно запустить приложение (вторую JVM) из приложения Java с помощью JNA.

Обратите внимание, что я не могу:

  • добавить манифест Windows в JVM (минимальное влияние на клиент)
  • используйте правый щелчок «runas администратор» (нажатие «Разрешить» в диалоговом окне UAC будет достаточно сложным)

Я видел другие вопросы с ответами, в которых говорится «использовать exe», например администратор, но мне было интересно, пробовал ли кто-нибудь это с помощью JNA


person Cerber    schedule 26.01.2011    source источник


Ответы (1)


Чтобы запустить приложение с повышенными привилегиями, вы должны использовать ShellExecute и передать "runas" в качестве значения параметра lpOperation. Этот метод не требует изменения JVM для добавления в нее манифеста. Это ведет себя так, как если бы пользователь щелкнул приложение правой кнопкой мыши и выбрал команду Запуск от имени администратора.

Примечание. В Windows XP не следует использовать "runas", так как он запрашивает учетные данные пользователя.

person Alexey Ivanov    schedule 03.03.2011