La Web del Programador: Comunidad de Programadores
 
    Pregunta:  214 - NOMBRE DE USUARIO EN UNA RED NT
Autor:  José
Estoy trabajando dentro de una red Windows NT con clientes Windows 95. Acabo de realizar mi primer programita en Visua Basic, y para redondearlo, necesitaria poder recuperar el nombre del usuario que se ha conectado a NT desde el cliente que está ejecutando el programa. Supongo que se podrá hacer con alguna de esas funciones raras que leen del Registro de Windows 95, pero no tengo ni idea de como.
Doy las gracias de antemano

  Respuesta:  Gerardo A. Mendoza
Hola:
Apenas estoy haciendo mis "pininos" en VB, pero en el sitio de EL GUILLE podrás encontrar algo relacionado con tu duda, ya que también es una de las que tengo, en la sección de API encontraras un ejemplo de saber el nombre del usaurio. Espero que te sirva.http://guille.costasol.net/indice_cf.htm

  Respuesta:  Paco Rentería
Te mando el código completo de una librería que hice en vb4, solo es necesario llamar GetUsuario para que te regrese el string conteniendo el nombre de usuario. Este código funciona en redes windows, obtiene el nombre del usuario logeado en la terminal. El código es para win32, para pasarlo a win16 solo es necesario cambiar las cabeceras de las funciones API a sus equivalentes en win16.
Attribute VB_Name = "Redes"
´Este módulo contiene todo el código y declaraciones utilizadas para la identificación y registro del usuario en el sistema Por omisión, se supone que el login del usuario al sistema es el mismo que del usuario a la red.
Option Explicit
´Determina la longitud máxima del login de Windows
Private Const MAX_USERNAME_LENGTH As Long = 20

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

Function StrZToStr(ByVal StrZ As String) As String
On Error GoTo StringError
StrZToStr = Left$(StrZ, InStr(StrZ, vbNullChar) - 1)
Exit Function
StringError:
StrZToStr = ""
End Function

Function GetUsuario() As String
Dim m_UserName As String ´Para obtener el nombre del usuario
´Obtengo el nombre del usuario logeado en Windows
m_UserName = String$(20 + 1, vbNullChar)
GetUserName m_UserName, Len(m_UserName)
GetUsuario = StrZToStr(m_UserName)

End Function

  Respuesta:  Dani
1 sola linea sin mas, Environ("USERNAME") te da el nombre del usuario que tiene establecida una sesión en Windows NT. EJ. Debug.Print Environ("USERNAME") o Usuario = Environ("USERNAME")