如何获得登录用户的 * 显示名称 *?不是 * 用户名 *,而是 * 显示名称 *,如下面的屏幕截图所示-与任何Windows Vista/7计算机的开始菜单上显示的一样。
我尝试了一堆来自其他问题的不同建议,但它们都显示 username,而不是 display name。您可以在上面的屏幕截图中看到这些尝试的结果。
Imports System.Security.Principal
Imports System.Threading
Imports System.IO
Imports System
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MsgBox("1: " & System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString & vbCrLf & _
"2: " & Environment.UserDomainName & vbCrLf & _
"3: " & WindowsIdentity.GetCurrent().Name & vbCrLf & _
"4: " & Thread.CurrentPrincipal.Identity.Name & vbCrLf & _
"5: " & Environment.UserName & vbCrLf & _
"6: " & My.User.Name & vbCrLf &
"7: " & My.Computer.Name)
End Sub
End Class
3条答案
按热度按时间jecbmhm31#
您应该使用
UserPrincipal.DisplayName
:为此,您需要从项目中添加对
System.DirectoryServices.AccountManagement.dll
的引用。注意:当计算机从网络中拔出或无法访问域服务器时不起作用。
k4ymrczo2#
试试这个
http://msdn.microsoft.com/en-us/library/sfs49sw0(v=vs.110).aspx
h4cxqtbf3#
它包含在
System.DirectoryServices
命名空间中,因此您需要将其添加到using
部分中。然后您可以使用
System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName
,它会传回Display Name
。这通常会显示在[开始]功能表中。