Access Lab

Como averiguar el nombre de usuario de red

Define estas funciones API en la sección Declaraciones de cualquier módulo:

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" _
	(ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
	(ByVal lpBuffer As String, nSize As Long) As Long

Y a continuación esta función:

Function NetUser() As String
Dim cbusername As Long, username As String
username = Space(256)
cbusername = Len(username)
If WNetGetUser(ByVal 0&, username, cbusername) = 0 Then
	NetUser = Left(username, InStr(username, Chr(0)) - 1)
Else
	If GetUserName(username, cbusername) Then
		NetUser = Left(username, InStr(username, Chr(0)) - 1)
	Else
		NetUser = ""
	End If
End If
End Function

Ahora solo tienes que poner =NetUser() como Origen del control en un cuadro de texto, y allí aparecerá el nombre del usuario de red.

Esta función también está incluida en bdutils.zip.


Volver a AccessLab