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.