Como Obter o Nome do Usuário Logado no Windows com Visual Basic

No Windows, é possível identificar o usuário atualmente logado no sistema utilizando a API do Windows GetUserName. Isso é útil para aplicativos que precisam validar permissões ou personalizar funcionalidades de acordo com o usuário.

Obtendo o Nome do Usuário

O código abaixo recupera o nome do usuário que está logado na máquina:

1. Declarando a Função API

No módulo ou na seção de declaração do seu formulário, adicione:

Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, ByRef nSize As Long) _
As Long

2. Código para Obter o Nome do Usuário

Function NomeUsuario() As String
    Dim s As String
    Dim Tamanho As Long
    Dim Resultado As Long
    Tamanho = 200 ' Define o tamanho do buffer
    s = String$(Tamanho, 0) ' Inicializa a string com caracteres nulos

    Resultado = GetUserName(s, Tamanho)

    If Resultado <> 0 Then
        NomeUsuario = Left$(s, Tamanho - 1) ' Remove caracteres extras
    Else
        NomeUsuario = "Usuário desconhecido"
    End If
End Function

3. Chamando a Função

Para exibir o nome do usuário logado, basta chamar a função em qualquer parte do código:

MsgBox "Usuário logado: " & NomeUsuario

Explicação do Código

GetUserName: Obtém o nome do usuário logado.
String$(Tamanho, 0): Cria um espaço de memória para armazenar o nome.
Left$(s, Tamanho – 1): Remove caracteres extras da string retornada.
Se a função falhar, a mensagem “Usuário desconhecido” será exibida.


Outras Dicas sobre o Visual Basic

Além de obter o nome do usuário, você pode verificar o nome do computador com a API GetComputerName:

Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, ByRef nSize As Long) As Long

Function NomeComputador() As String
    Dim s As String
    Dim Tamanho As Long
    Dim Resultado As Long
    Tamanho = 200
    s = String$(Tamanho, 0)

    Resultado = GetComputerName(s, Tamanho)

    If Resultado <> 0 Then
        NomeComputador = Left$(s, Tamanho - 1)
    Else
        NomeComputador = "Computador desconhecido"
    End If
End Function

Uso:

MsgBox "Nome do computador: " & NomeComputador

Com essas funções, você pode personalizar o comportamento do seu programa de acordo com o usuário e o computador onde ele está sendo executado.


Posts Similares