在 c# 中切换用户事件后跟踪当前活动 windows 用户

Keep track of current active windows user after switch user event in c#

我正在尝试监控计算机上当前用户的activity。
我有一个进程监视它需要监视的内容并保存在用户执行 activity.

的文件中 目前,我在该进程启动时将拥有该进程的用户名保存在一个文件中,当新用户登录时该进程会自动启动。因此,我可以处理在同一台机器上登录的不同用户。
当有 2 个或更多登录用户并且他们在没有注销的情况下被切换时会出现问题(现在我忽略 RDP 登录的情况)。

我试过使用 SystemEvents.SessionSwitch 事件,但它没有给我新的活跃用户,它只告诉我哪个用户不再活跃。我想到有一个管理进程负责在用户切换后杀死并重新启动监控进程,但该进程也不知道当前哪个用户处于活动状态。

如果有人知道如何跟踪活跃用户,我们将不胜感激。
谢谢

已在以下线程中解决:How do I get the currently-logged username from a Windows service in .NET?。塔帕斯答对了。

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();