Проверка разрешений Windows в Java

#java #permissions #registry #uac #administrator

#java #разрешения #реестр #uac #администратор

Вопрос:

Программа, которую я разрабатываю на Java для Windows, иногда изменяет реестр. Это работает только при запуске от имени администратора. Это указывает на то, что нет разрешения на обновление реестра только при сбое обновления. С этим связана небольшая проблема: при сбое обновления отображается сообщение и все такое, но также Windows показывает сообщение, в котором говорится «Программа была запущена неправильно», что-то вроде этого, когда программа закрывается. Я хочу избавиться от этого сообщения. Я думаю о том, могу ли я выполнить простую проверку, есть ли у меня права на обновление реестра, не пытаясь это сделать? Например, проверить, являюсь ли я администратором или имею права администратора? Или я могу получить права администратора только для выполнения reg? Спасибо

Комментарии:

1. Вы пометили это как Java. Ваша программа написана на Java? Если это так, то для определения прав пользователя вам придется использовать стороннюю библиотеку за пределами стандартной библиотеки. Дизайн Java заключается в том, чтобы запретить вам выполнять действия, зависящие от платформы, такие как доступ к реестру или получение запроса UAC в Windows.

2. Спасибо, не могли бы вы указать на подобную библиотеку? Или есть команда cmd, которую я мог бы запустить и получить возвращаемое значение?

3. возможно, вам придется использовать это jna.java.net с cboard.cprogramming.com/csharp-programming /… . я думаю, что dll, которая вам может понадобиться, может быть взята из en.wikipedia.org/wiki/Windows_API .

4. Взгляните на SetACL ( helgeklein.com ), мощный бесплатный инструмент для управления разрешениями Windows. Она доступна как EXE-файл командной строки и как COM-объект.