Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何查找已登录Windows用户的会话名称?_C# - Fatal编程技术网

C# 如何查找已登录Windows用户的会话名称?

C# 如何查找已登录Windows用户的会话名称?,c#,C#,正如您在windows任务管理器的“用户”选项卡中所看到的,共有5列: User ID Status Client Name Session Mike 1 Active Console 我已使用它获取会话id: System.Diagnostics.Process.GetCurrentProcess().SessionId.ToString(); 我想知道会话名称,看看它是控制台还是远程桌面等 private string getsessio

正如您在windows任务管理器的“用户”选项卡中所看到的,共有5列:

User   ID   Status  Client Name  Session
Mike   1    Active               Console
我已使用它获取会话id:

System.Diagnostics.Process.GetCurrentProcess().SessionId.ToString();
我想知道会话名称,看看它是控制台还是远程桌面等

private string getsessionname()
{
  // function to get session name
}

if(getsessionname=="console")
{
  // do staff1
}
else
{
  // do staff2
}

谢谢。

与其获取会话名称,然后测试某些值,您不只是在寻找吗

获取一个值,该值指示调用进程是否与终端服务客户端会话关联

例如:


没有托管API。一种方法是通过P-Invoke使用本机API,请参阅。但是一个更简单的方法是使用WMI和。

可能与否重复,我认为它说的是“会话名称”,我想要currnet用户的seision名称,而不是用户名。他们是不同的。你能用例子解释一下吗?我是新手。非常感谢。但是更简单的方法会得到这些结果:\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“995”\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“999”\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“996”\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“146406”\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“224478”\\Computername\root\cimv2:Win32\u LogonSession.LogonId=“709133”不是我想要的东西。顺便说一句,谢谢你的努力。
using System.Windows.Forms;

...

if(SystemInformation.TerminalServerSession)
{
  // do stuff where the user is using remote desktop
}
else
{
  // user is connected locally, e.g. the console
}