我正在使用 C# Framework 4.0 Windows 窗体。我的程序安装在服务器 TSE 上。有 11 个轻客户端连接到此服务器。
当这些客户之一启动我的程序时,我如何获得他的 PC 名称?
我正在使用 C# Framework 4.0 Windows 窗体。我的程序安装在服务器 TSE 上。有 11 个轻客户端连接到此服务器。
当这些客户之一启动我的程序时,我如何获得他的 PC 名称?
假设您使用的是终端服务和远程桌面,您可以检查 CLIENTNAME 环境变量来检索客户端计算机的名称,尽管有些人报告它存在问题。
您可以使用Environment.GetEnvironmentVariable获取值,例如
var clientName=Environment.GetEnvironmentVariable("CLIENTNAME");
对于基于 API 的方法,请检查从终端服务器会话获取客户端名称的首选方式,它显示了如何使用 WMI 或终端服务 API 来检索客户端名称
更新
嗯,Cassia库似乎封装了 TS API。您可以通过以下方式获取客户名称
new TerminalServicesManager().CurrentSession.ClientName
另一个SO 线程显示如何检索当前会话的客户端名称或所有会话的客户端名称。
在客户端上,使用:
string machineName = Environment.MachineName;
string ComputerName1 = Dns.GetHostName();//Server Name
string ComputerName2 = Environment.MachineName;//Server Name
如果您使用的是 .NET,则可以使用以下代码:
Dim PcName As String = Environment.UserName
然后只需PcName
在要显示的任何位置调用 at 即可。
祝你好运 :)