Es sobre mi pregunta que hice hace días, sobre como obtener desde VB el usuario actual de Windows, a lo que me enviaste muy gustosamente una posible solución. Me gustaría por favor si la revisas bien ya que no funcionó, no se si faltó algun objeto por ingresar en mi formulario. Tampoco VB me validó los dos primeros renglones de la declaración:
Private Declare Function GetUserName Lib "advapi32.dll" Alias
tampoco me aceptó la segunda linea:
"GetUserNombreA" (ByVal IpBuffer As String, nSize As Long
Por favor si me pueden ayudar a mejorarlo para que funcione o si hay otro metodo.
Para los que quieran ayudar mi inquietud está titulada:
"Como Obtener el usuario actual de Windows".
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function ReturnUserName() As String
Dim rString As String * 255, sLen As Long, tString As String
tString = ""
On Error Resume Next
sLen = GetUserName(rString, 255)
sLen = InStr(1, rString, Chr(0))
If sLen > 0 Then
tString = Left(rString, sLen - 1)
Else
tString = rString
End If
On Error GoTo 0
ReturnUserName = UCase(Trim(tString))
End Function
esta funcion trae el nombure de usuario de winnt
Mira... todo el siguente codigo es una sola linea:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Aunque aqui tal ves aparescan en dos, en realidad es solo una linea...
Por eso te marcaba error, porque eso debe estar en una sola linea...
Asi que si colocas la declaracion de la API en una sola linea no te debe marcar error alguno... Pero si continuas teniendo algun problema, dimelo y te pongo el codigo del proyecto en un Zip y te lo subo a la red, para que asi ya no tengas ningun problemas...
Hasta pronto...
Puedes visitarme en mi foro en http://programador.foro.st/ en el cual si se puede adjuntar archivos de ejemplo...
Hasta pronto...
si por alguna razon sale con diagonales invertidas quitale todas las que tenga ya que no debe tener diagonales sale...... ahhhh y en donde encuentres un _ guion bajo significa que le tienes que poner lo demas en la linea de abaajo por ejemplo
ho_
la
sale :ª)
Option Explicit
'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
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
para probarlo ponle
Msgbox UsuarioActual
30 de Julio del 2003
bueno te paso la funcion que hace lo que dices
si por alguna razon sale con diagonales invertidas quitale todas las que tenga ya que no debe tener diagonales sale...... ahhhh y en donde encuentres un _ guion bajo significa que le tienes que poner lo demas en la linea de abaajo por ejemplo
ho_
la
sale :ª)
Option Explicit
'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
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
para probarlo ponle
Msgbox UsuarioActual
