Как мне написать приложение, которое предупреждает службу Windows, какой пользователь в данный момент вошел в систему? - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть служба Windows, которая должна запускаться для всех пользователей, которым необходимо знать, какой пользователь в данный момент вошел в систему. Я хотел бы написать приложение, которое запускается при входе пользователя в систему, которое предупредит службу о том, что этот пользователь является тот, который в настоящее время вошел в систему. Он также должен обрабатывать, когда пользователь переключается (то есть оба работают).

Возможно ли это и является ли лучшим способом информирования моей службы о том, какой пользователь в данный момент вошел в систему и использует компьютер, и если да, как я могу приступить к созданию / установке моего приложения, чтобы оно запускалось при входе пользователя в систему (он просто входит в папку «Автозагрузка» для этого пользователя?) и определяет, были ли пользователи переключены?

Если нет, как лучше всего это сделать?

Ответы [ 4 ]

1 голос
/ 12 февраля 2010

Проблема в том, что несколько человек могут легко войти на одну и ту же машину, поэтому на самом деле вам нужно подключиться к случаю аутентификации пользователя в интерактивном режиме. Используйте этот API:

http://msdn.microsoft.com/en-us/library/aa374783(VS.85).aspx

0 голосов
/ 16 февраля 2010

Я использовал SENS, который я нашел по ссылке, предоставленной Ed. Эд, если ты напишешь свой комментарий как ответ, я отмечу его как правильный.

0 голосов
/ 13 февраля 2010

API службы Windows поддерживают этот сценарий напрямую. В вашей функции HandlerEx уведомление SERVICE_CONTROL_SESSIONCHANGE отправляется при входе или выходе пользователя из системы.

0 голосов
/ 12 февраля 2010

Если у вас уже есть служба Windows, я бы запросил локальный компьютер аналогично тому, как это делает PsLoggedOn . Честно говоря, в зависимости от того, что вы пытаетесь сделать, вы можете просто запросить AD и определить, кто вошел в систему и где находится весь домен, не полагаясь на каждую машину для локального управления собственным состоянием.

Вот пример сценария (первый в списке).

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