C# Framework 4.0 Windows フォームを使用しています。私のプログラムはサーバー TSE にインストールされています。このサーバーに接続する 11 のライト クライアントがあります。
これらのクライアントの 1 つが私のプログラムを起動するとき、どうすれば彼の PC 名を取得できますか?
C# Framework 4.0 Windows フォームを使用しています。私のプログラムはサーバー TSE にインストールされています。このサーバーに接続する 11 のライト クライアントがあります。
これらのクライアントの 1 つが私のプログラムを起動するとき、どうすれば彼の 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
、表示したい場所で を呼び出します。
幸運を :)