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)