Отслеживание текущего активного пользователя Windows после переключения пользовательского события в C#
Я пытаюсь отслеживать активность текущего пользователя на компьютере.
У меня есть процесс, который отслеживает то, что нужно для мониторинга и сохраняет в файле, который пользователь сделал действие.
В настоящее время я сохраняю в файле имя пользователя, которому принадлежит процесс, при запуске этого процесса, и этот процесс запускается автоматически при входе нового пользователя. Таким образом, я могу работать с разными пользователями, входящими в систему на одной машине.
Проблема возникает, когда в системе зарегистрировано 2 или более пользователей, и они переключаются без выхода из системы (сейчас я игнорирую случай входа в RDP).
Я пытался использовать событие SystemEvents.SessionSwitch, но оно не дает мне нового активного пользователя, оно только говорит мне, какой пользователь больше не активен. Я думал о том, чтобы иметь процесс управления, который отвечает за уничтожение и перезапуск процесса мониторинга после переключения пользователя, но этот процесс также не знает, какой пользователь в данный момент активен.
Если кто-нибудь знает, как я могу отслеживать активных пользователей, любая помощь будет принята с благодарностью.
Спасибо
1 ответ
Это было решено в этой теме: Как я могу получить текущее имя пользователя из службы Windows в.NET?, У Тапаса был правильный ответ.
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();