Служба Windows для запуска и перезапуска пользовательского процесса (с графическим интерфейсом) - PullRequest
4 голосов
/ 15 ноября 2011

Мне нужен определенный процесс, чтобы постоянно запускаться на компьютере каждого пользователя. Если этот .exe убит, я должен быть в состоянии перезапустить его и отправить предупреждение.
Я сразу подумал о создании службы Windows в качестве идеального решения, но я столкнулся с проблемой:

  • Процесс, запущенный этой службой, должен иметь возможность взаимодействовать с пользователем, например, быть в состоянии показать ему графический интерфейс.
  • мое приложение также устанавливает хук клавиатуры для того, чтобы отслеживать ритмы набора текста пользователя , и когда я запускаю .exe из службы, эта информация недоступна.

Из службы я могу запустить процесс "как пользователь" (используя функции LogonUser и CreateProcessAsUser), но все еще не вижу графический интерфейс.
Это возможно? Если нет, что я могу использовать для достижения желаемой функциональности?

ТИА

1 Ответ

3 голосов
/ 15 ноября 2011

По умолчанию GUI .exe будет запускаться в сеансе службы, который отделен от интерактивного сеанса пользователя. Вам нужно изучить методы создания интерактивного сервиса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...