1

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

当这些客户之一启动我的程序时,我如何获得他的 PC 名称?

4

4 回答 4

8

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

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

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

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

更新

嗯,Cassia库似乎封装了 TS API。您可以通过以下方式获取客户名称

new TerminalServicesManager().CurrentSession.ClientName

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

于 2012-12-28T10:18:56.247 回答
3

在客户端上,使用:

string machineName = Environment.MachineName;
于 2012-12-28T10:08:04.307 回答
1
string ComputerName1 = Dns.GetHostName();//Server Name
string ComputerName2 = Environment.MachineName;//Server Name  
于 2012-12-28T10:16:53.240 回答
0

如果您使用的是 .NET,则可以使用以下代码:

Dim PcName As String = Environment.UserName

然后只需PcName在要显示的任何位置调用 at 即可。

祝你好运 :)

于 2020-01-13T09:31:39.043 回答