Imprimir página | Cerrar ventana

Usuario de Windows

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artí­culos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=77241
Fecha de impresión: 03/Junio/2020 a las 22:37


Tema: Usuario de Windows
Publicado por: buho
Asunto: Usuario de Windows
Fecha de publicación: 09/Agosto/2013 a las 20:46

Es una pregunta que se suele repetir: Saber el nombre del usuario que ha iniciado sesión en Windows. Formas de hacerlo...varias.

Primera Forma: API

Option Explicit

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _

    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function DameUsuarioApi() As String

  'Utilizando API de Windows

  Dim lngLen As Long, lngX As Long

  Dim strUserName As String

  strUserName = String$(254, 0)

  lngLen = 255

  lngX = apiGetUserName(strUserName, lngLen)

  If lngX <> 0 Then

    DameUsuarioApi = Left$(strUserName, lngLen - 1)

  Else

    DameUsuarioApi = "Incapaz de detectar usuario."

  End If

End Function

Segunda Forma: Variables de Entorno

Function DameUsuarioSencilla() As String

  'Utilizando Variables de entorno

  DameUsuarioSencilla = Environ("USERNAME")
End Function

Tercera forma: Utilizando Windows Script Host

Function DameNombreUsuarioWSH() As String

  'Dos lineas y me devuelve el nombre del PC y del usuario Activo

  'Mas facil, imposible

  'Buho Junio 2003

  Dim ObjetoRed As Object

  Set ObjetoRed = CreateObject("WScript.Network")

  MsgBox "Nombre del PC en Red : " & ObjetoRed.ComputerName & vbCrLf _

      & "Usuario: " & ObjetoRed.UserName, vbInformation, "Aviso"

 

  DameNombreUsuarioWSH = ObjetoRed.UserName

  Set ObjetoRed = Nothing

End Function



-------------
Por fin he hecho algo bueno, ser abuelo ¡y porque no lo he hecho yo!



Imprimir página | Cerrar ventana