Отслеживание текущего активного пользователя Windows после переключения пользовательского события в C#

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

В настоящее время я сохраняю в файле имя пользователя, которому принадлежит процесс, при запуске этого процесса, и этот процесс запускается автоматически при входе нового пользователя. Таким образом, я могу работать с разными пользователями, входящими в систему на одной машине.
Проблема возникает, когда в системе зарегистрировано 2 или более пользователей, и они переключаются без выхода из системы (сейчас я игнорирую случай входа в RDP).

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

Если кто-нибудь знает, как я могу отслеживать активных пользователей, любая помощь будет принята с благодарностью.
Спасибо

1 ответ

Решение

Это было решено в этой теме: Как я могу получить текущее имя пользователя из службы Windows в.NET?, У Тапаса был правильный ответ.

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
Другие вопросы по тегам