Formas de obter o nome do usuário logado

 

Nesta dica apresentamos algumas formas de se obter o nome do usuário corrente. A mais simples é importando os dois namespaces a seguir e usando GetCurrent.Name (que irá retornar o domínio/conta):

 

Imports System.Security

Imports System.Security.Principal.WindowsIdentity

 

Public Class Form1

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        lblNome.Text = GetCurrent.Name

    End Sub

End Class

 

Se preferir, você poderá fazer a mesma coisa via API usando o código a seguir:

 

Public Class Form1

 

    Declare Function GetUserName Lib "advapi32.dll" Alias _

       "GetUserNameA" (ByVal lpBuffer As String, _

       ByRef nSize As Integer) As Integer

 

    Public Function GetUserName() As String

        Dim iReturn As Integer

        Dim userName As String

        userName = New String(CChar(" "), 50)

        iReturn = GetUserName(userName, 50)

        GetUserName = userName.Substring(0, userName.IndexOf(Chr(0)))

    End Function

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        lblNome.Text = GetUserName

    End Sub

End Class

 

Já para pegar a conta de usuário que está rodando o processo corrente, use Environment.UserName. Veja:

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    lblNome.Text = Environment.UserName

End Sub

 

Cláudio Ralha (claudioralha@hotmail.com)