web-dev-qa-db-fra.com

Obtenir le nom d'affichage de l'utilisateur Windows

Comment puis-je obtenir le nom d'affichage de l'utilisateur connecté? Pas le nom d'utilisateur, mais le nom d'affichage, comme indiqué dans la capture d'écran ci-dessous - et comme on le voit dans le menu Démarrer de n'importe quel ordinateur Windows Vista/7.

enter image description here

J'ai essayé un tas de suggestions différentes à partir d'autres questions, mais elles montrent toutes le nom d'utilisateur, pas le nom d'affichage. Vous pouvez voir les résultats de ces tentatives dans la capture d'écran ci-dessus.

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
34
Codemunkeee

Tu devrais utiliser UserPrincipal.DisplayName :

System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName

Pour ce faire, vous devez ajouter une référence à System.DirectoryServices.AccountManagement.dll de votre projet.

59
Tim