Em alguns casos pode ser necessário que registremos os nomes dos usuários que estão acessando as
nossas aplicações. Ou talvez desejemos desenvolver um modo de Login que utilize esses nomes de
usuários na rede.
Function NetUName() As String
' Tratamento de erros: Se ocorrer erro, o código irá para o rótulo "Err_Handler"
On Error GoTo Err_Handler
' Declaração de variáveis
Dim lngLen As Long
Dim strUserName As String
' Constantes
Const lngcMaxFieldSize As Long = 64 ' Define o tamanho máximo do nome de usuário
' Inicialização das variáveis
strUserName = String$(254, vbNullChar) ' Cria uma string de 254 caracteres nulos
lngLen = 255 ' Inicializa o tamanho máximo de caracteres a serem lidos
' Chama a API para obter o nome de usuário
' Se o retorno da API for diferente de zero, significa que a operação foi bem-sucedida
If apiGetUserName(strUserName, lngLen) <> 0 Then
' Ajusta o comprimento do nome de usuário retornado
lngLen = lngLen - 1 ' Ajusta para remover o caractere nulo extra no final da string
' Verifica se o comprimento excede o tamanho máximo definido
If lngLen > lngcMaxFieldSize Then
lngLen = lngcMaxFieldSize ' Limita o comprimento do nome de usuário ao tamanho máximo
End If
' Atribui o nome de usuário à variável de retorno, com o comprimento ajustado
NetUName = Left$(strUserName, lngLen)
End If
' Rótulo de saída, usado para finalizar a função
Exit_Handler:
Exit Function
' Rótulo de erro: Caso ocorra algum erro, a função será direcionada aqui
Err_Handler:
' Chama a função de log de erros passando informações sobre o erro ocorrido
Call LogError(Err.Number, Err.Description, conMod & ".NetworkUserName", , False)
' Retorna ao ponto de saída da função
Resume Exit_Handler
End Function