Error en código

Tengo una aplicación en access y he creado un modulo con este código para rescatar el nombre del equipo de la red que accede a una base de datos access y guardar posteriormente este campo, pero al ejecutarlo me da un error, ¿serías tan amable de decirme que ocurre y como se soluciona? Gracias
Declare Function getcomputername Lib "kernel32" _
(ByVal lpbuffer As String, nSize As Long) As Long
'Esta función devuelve el nombre del Usuario
Public Function UsuarioActual() As String
Dim sBuffer As String
Dim lSize As Long
Dim sUsuario As String
sBuffer = Space$(260)
lSize = Len(sBuffer)
Call getcomputername(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

2 Respuestas

Respuesta
1
Están incorrectas las declaraciones de las funciones API.
Las correctas son:
Para el nombre del equipo:
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Para el usuario de la red:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
El resto está Ok. Puedes usar la misma función para los 2 temas, solo debes cambiar a que función llama.
Call GetComputerName(sBuffer, lSize)
Call GetUserName(sBuffer, lSize)
Saludos. Jorge
Respuesta
1
Esto falla en...
Call getcomputername(sBuffer, lSize)
Y da error de dll.
Esta dll creo que se llama "getuname.dll" y se encuentra en C:\windows\system32
Para registrarla ve al símbolo del sistema (MS-DOS) y ejecuta en el directorio
c:\windows\system32>regsvr32.exe getuname.dll
... pero a mi no me funciona.
... trata de des-registrarla (/u) y volverla a registrar
... o bien se trate de otra dll que se llame igual, de otro windows, entre otras cosas
saludos.
Habia un codigo (por 'guillermo') que hacia eso y funcionaba.
Supongo que era de la página 'elguille' o algo así

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas