问题
I am using C# Framework 4.0 Windows Form. My program is installed on a server TSE. There are 11 light clients that connect to this server.
When one of these clients launches my progam, how can I get his PC name ?
回答1:
Assuming you are using Terminal Services and Remote Desktop, you can check the CLIENTNAME environment variable to retrieve the client machine's name, although some people report problems with it.
You can get the value with Environment.GetEnvironmentVariable, eg
var clientName=Environment.GetEnvironmentVariable("CLIENTNAME");
For an API based method, check Preferred way Of getting Client name From Terminal Server Session which shows how to use WMI or the Terminal Services API to retrieve the client name
UPDATE
Hmm, seems the Cassia library encapsulates the TS API. You can get the client name with TerminalServicesManager().CurrentSession.ClientName
Another SO thread shows how to retrieve the current session's client name or the client names of all sessions.
回答2:
On the client, use:
string machineName = Environment.MachineName;
回答3:
string ComputerName1 = Dns.GetHostName();//Server Name
string ComputerName2 = Environment.MachineName;//Server Name
来源:https://stackoverflow.com/questions/14067846/how-can-i-get-the-client-computer-name