Как запустить приложение с повышенными привилегиями в Vista +, используя Java / JNA для запуска UAC - PullRequest
3 голосов
/ 26 января 2011

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

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

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

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

1 Ответ

1 голос
/ 03 марта 2011

Чтобы запустить приложение с повышенными привилегиями, необходимо использовать <a href="http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx" rel="nofollow">ShellExecute</a> и передать "runas" в качестве значения параметра lpOperation. Этот метод не требует, чтобы вы изменили JVM, чтобы добавить к нему манифест. Это ведет себя так, как будто пользователь щелкнул правой кнопкой мыши приложение и выбрал команду Запуск от имени администратора .

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

...