1

C# Framework 4.0 Windows フォームを使用しています。私のプログラムはサーバー TSE にインストールされています。このサーバーに接続する 11 のライト クライアントがあります。

これらのクライアントの 1 つが私のプログラムを起動するとき、どうすれば彼の 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、表示したい場所で を呼び出します。

幸運を :)

于 2020-01-13T09:31:39.043 に答える