windows:XP - > current:如何在CONSOLE或RDP会话中判断?

时间:2015-12-22 23:09:29

标签: c# windows session

我在各个实验室中收集了大量的Windows平台。从XP到最新的一切。我有一个简单的C#/ .NET应用程序,在用户登录和注销时运行。我需要区分真正的控制台登录和RDP会话。我正在使用

System.Diagnostics.Process.GetCurrentProcess().SessionId

获得sessionId,但我没有看到任何说“你在控制台上”或“你在RDP会话中”的内容。有这样的事吗?

2 个答案:

答案 0 :(得分:1)

根据我的需要,事实证明windows环境变量%sessionname%包含我正在寻找的信息。在我的C#代码中,我可以说:

string sessionName = Environment.GetEnvironmentVariable("SESSIONNAME")
                     ?? "CONSOLE";

%sessionname%似乎包含字符串“console”或“rdp-(something)#(number)”,ex“rdt-tcp#1234”。我不知道所有可能的值,但看起来它可以满足我的需求。

答案 1 :(得分:0)

您可以通过调用WTSGetActiveConsoleSessionId()函数来确定当前连接到物理控制台的会话ID(如果有)。