Я разработчик Java и что это для моего приложения. Это больше проблема с Windows, чем с Java.

Это была одна неделя x 8 часов в день или больше, так как я занимаюсь только этим вопросом, слушаю советы других людей, ищу, читаю статьи, похожие посты и экспериментирую.

Не удалось найти правильное решение. Но я все еще уверен, что есть хитрость, которую я не смог понять.

  1. Я хочу запустить приложение с GUI app когда any user logs in.
  2. Я хочу run это приложение в as administrator or system service(пароль администратора доступен) (но separate instance for each user чтобы он мог взаимодействовать с каждым пользователем отдельно?)
  3. Я do not want чтобы user to be able to delete the app file or close / stop that app while its running . Только администраторы могут завершить приложение.

scheduler задач или services не позволяют приложению запускаться от имени администратора / системы на обычных рабочих столах каждого обычного пользователя as "interactive" приложение для рабочего стола. Сервисы, как правило, не являются интерактивными и не являются интерактивными.

Пожалуйста, отвечайте только в том случае, если вы точно знаете точное « рабочее решение » в указанном порядке. возьмите пример notepade.exe


примечания стороны:

Я слышал, что VirtualBox имеет открытый исходный код и имеет службу уровня администратора с несколькими экземплярами пользовательского интерфейса на уровне пользователя. Так что я думаю, что это достижимо


очень благодарен за ответчиков и upvoters. downvoters (если таковые имеются). указать причину понизить голос, чтобы я мог улучшить

1 ответ1

0

Вот идея из мира Linux:

В Linux общая идея состоит в том, чтобы использовать 2 программы:

  • один "мастер сервис" (как администратор, в фоновом режиме). Примечание. Служба в Linux называется демоном.
  • один или несколько "клиентских сервисов", запущенных на уровне пользователя

"Главный сервис" будет иметь права администратора и будет принимать, обрабатывать и отвечать на команды, отправленные "клиентским сервисом".

"Клиентский сервис" будет отправлять команды в соответствии с дружественным графическим интерфейсом.

Эти два взаимодействуют, используя "DBus", систему обмена сообщениями. Windows Sockets является эквивалентом, я думаю, в Windows: https://stackoverflow.com/questions/482681/d-bus-equivalent-for-windows

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .