Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Obtener el nombre de Usuario de windows

Estas en el tema de Obtener el nombre de Usuario de windows en el foro de Visual Basic clásico en Foros del Web. Hola, Quiesiera que me ayudaran a conseguir que mediante una etiqueta (Label) me muestre la informacion del Usuario de windows del "regedit" HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RegisteredOwner y ...
  #1 (permalink)  
Antiguo 01/10/2007, 07:15
Avatar de PanKrdo  
Fecha de Ingreso: julio-2007
Ubicación: Veracruz
Mensajes: 46
Antigüedad: 16 años, 10 meses
Puntos: 2
Exclamación Obtener el nombre de Usuario de windows

Hola,
Quiesiera que me ayudaran a conseguir que mediante una etiqueta (Label) me muestre la informacion del Usuario de windows del "regedit"

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RegisteredOwner

y el nombre de la organizacion:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\RegisteredOrganization

Yo utilizo el siguiente codigo pero no me da resultados:

Código:
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias
 "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
 ByVal lpReserved As Long, lpType As Long, lpData As Any,
 lpcbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias
 "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String,
 phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll"
 (ByVal hKey As Long) As Long

Private Sub Form_Load()
    Dim strUser As String
    Dim strOrg As String
    Dim lngLen As Long
    Dim lngType As Long
    Dim hKey As Long
    Dim x As Long
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const REG_SZ = &H1
    x = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", hKey) ' open desired key in registry
    strUser = Space$(256)
    lngLen = Len(strUser)
    x = RegQueryValueEx(hKey, "RegisteredOwner", 0, lngType, ByVal strUser, lngLen)
    If x = 0 And lngType = REG_SZ And lngLen > 1 Then
        strUser = Left$(strUser, lngLen - 1)
    Else
        strUser = "Desconocido"
    End If
    strOrg = Space$(256)
    lngLen = Len(strOrg)
    x = RegQueryValueEx(hKey, "RegisteredOrganization", 0, lngType, ByVal strOrg, lngLen)
    If x = 0 And lngType = REG_SZ And lngLen > 1 Then
        strOrg = Left$(strOrg, lngLen - 1)
    Else
        strOrg = "Desconocido"
    End If
    Label1.Caption = "Usuario: " & strUser
    Label2.Caption = "Empresa: " & strOrg
    x = RegCloseKey(hKey)
End Sub
Gracias
  #2 (permalink)  
Antiguo 01/10/2007, 07:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Re: Obtener el nombre de Usuario de windows

Hola

Para obtener el nombre de usuario utilizo la API GetUserName.

Código:
'API para obtener el usuario actual
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpbuffer As String, nSize As Long) As Long

Public Function UsuarioActual() As String
    'Esta función devuelve el nombre del Usuario
    Dim sBuffer As String
    Dim lSize As Long
    Dim sUsuario As String

    sBuffer = Space$(260)
    lSize = Len(sBuffer)
    Call GetUserName(sBuffer, lSize)
    If lSize > 0 Then
        sUsuario = Left$(sBuffer, lSize)
        'Quitarle el CHR$(0) del final...
        lSize = InStr(sUsuario, Chr$(0))
        If lSize Then
            sUsuario = Left$(sUsuario, lSize - 1)
        End If
    Else
        sUsuario = ""
    End If
    UsuarioActual = sUsuario
    
End Function
Copiar y pegar en un módulo.

--Saludos--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:33.