如何获取客户端计算机名称

我正在使用C#Framework 4.0 Windows窗体。 我的程序安装在服务器TSE上。 有11个轻客户端连接到此服务器。

当其中一个客户启动我的程序时,我怎样才能获得他的PC名称?

假设您正在使用终端服务和远程桌面,您可以检查CLIENTNAME环境变量以检索客户端计算机的名称,尽管有些人报告了它的问题。

您可以使用Environment.GetEnvironmentVariable获取值,例如

var clientName=Environment.GetEnvironmentVariable("CLIENTNAME"); 

对于基于API的方法,请检查从终端服务器会话获取客户端名称的首选方式,该方法显示如何使用WMI或终端服务API检索客户端名称

UPDATE

嗯,似乎Cassia库封装了TS API。 您可以使用TerminalServicesManager().CurrentSession.ClientName获取客户端名称

另一个SO线程显示了如何检索当前会话的客户端名称或所有会话的客户端名称。

在客户端上,使用:

 string machineName = Environment.MachineName; 
 string ComputerName1 = Dns.GetHostName();//Server Name string ComputerName2 = Environment.MachineName;//Server Name