我知道(并且有效)在 C# 中,此属性告诉我当前会话是否是 RDP 会话:
System.Windows.Forms.SystemInformation.TerminalServerSession
现在,我有一个接收登录/注销和锁定/解锁事件的服务,我需要一种方法来告诉该服务正在启动的会话是 rdp 还是本地的。
问题:服务以SYSTEM用户运行,上面的属性总是返回false(我认为是因为SYSTEM总是被认为是本地连接用户)
我尝试在寄存器中搜索 Volatile Environment 子项,以检查是否存在标识 RDP 会话名称的子项:这在锁定/解锁处理程序中有效,但在登录处理程序中,子项尚不存在(子项登录完成后创建)。
关于如何解决这个问题的任何想法?
虽然在有限的时间内等待密钥创建是可行的,但我想要一种不那么“笨拙”的方式来做到这一点。