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

Obtener ruta de carpeta de usuario (VB6)

Estas en el tema de Obtener ruta de carpeta de usuario (VB6) en el foro de Visual Basic clásico en Foros del Web. Hola a todos Necesitaría saber como puedo obtener la ruta de la carpeta de usuario (C:\Documents and Settings\ **Usuario** ) con una función o de ...
  #1 (permalink)  
Antiguo 20/05/2007, 18:35
Avatar de Hardrive  
Fecha de Ingreso: julio-2006
Ubicación: La Plata - Bs. As.
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 0
Obtener ruta de carpeta de usuario (VB6)

Hola a todos

Necesitaría saber como puedo obtener la ruta de la carpeta de usuario (C:\Documents and Settings\**Usuario**) con una función o de alguna otra manera.

Aclaro que el método de obtener el nombre de usuario con el advapi32 y agregarlo al final de "Documents and settings" no me es útil en este caso, ya que si por algún motivo el nombre de la carpeta es diferente al del usuario (muy común cuando se cambia el nombre de la cuenta de usuario) no me servirá.

Gracias de antemano

Salu2
  #2 (permalink)  
Antiguo 20/05/2007, 22:25
Avatar de Hardrive  
Fecha de Ingreso: julio-2006
Ubicación: La Plata - Bs. As.
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Obtener ruta de carpeta de usuario (VB6)

Hola otra vez

Bueno ya he podido progresar un poco y he obtenido la ruta de %userprofile% con el siguiente codigo, el nuevo problema es que no puedo combinar esa ruta con otras palabras, aquí va el código:
Cita:
Option Explicit

Private Const TOKEN_QUERY = (&H8)
"GetUserProfileDirectoryA" (ByVal hToken As Long, ByVal lpProfileDir As String, lpcchSize As Long) As Boolean
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long

Private Sub Command1_Click()
Dim path As String
Dim sBuffer As String, Ret As Long, hToken As Long
sBuffer = String(255, 0)
OpenProcessToken GetCurrentProcess, TOKEN_QUERY, hToken
GetUserProfileDirectory hToken, sBuffer, 255
path = sBuffer & "\Datos de programa"
msgbox path
End Sub
El problema es que en vez de mostrar "C:\Documents and Settings\Usuario\Datos de programa" muestra "C:\Documents and Settings\Usuario". ¿Alguien sabe porqué es y como resolverlo?

Salu2
  #3 (permalink)  
Antiguo 22/05/2007, 11:38
Avatar de Hardrive  
Fecha de Ingreso: julio-2006
Ubicación: La Plata - Bs. As.
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Obtener ruta de carpeta de usuario (VB6)

¿Alguien puede ayudarme?
  #4 (permalink)  
Antiguo 29/07/2009, 19:17
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Re: Obtener ruta de carpeta de usuario (VB6)

Queo nda yo trabtaba de consegiuor algo parecido al o que ustedes quieren y lo logre de est amanera...

Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long

Private Sub Form_Load()
'Para saber el usuario actual de Windows
Dim NombreUsuario As String

NombreUsuario = String$(200, " ")

nNom1 = GetUserName(NombreUsuario, 200) 'Nombre de usuario actual
nNom2 = Left(NombreUsuario, 200)
nNom3 = Trim(nNom2) 'Nombre de usuario actual sin espacios
nLen = Len(nNom3) - 1 'Len del nombre de usuario sin el ultimo caracter
nNom5 = Mid(nNom3, 1, nLen) 'Nombre de usuario actual

nRuta = "C:\Documents and Settings\" & nNom5 & "\Menú Inicio\Programas\Inicio"
Me.Caption = nRuta

MsgBox nRuta
End Sub
  #5 (permalink)  
Antiguo 30/07/2009, 12:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años
Puntos: 3
Respuesta: Obtener ruta de carpeta de usuario (VB6)

Lo mas Facil:

Código:
MsgBox Environ("Userprofile")
Usando Environ

Es decir:

Código:
Environ("Userprofile")
es = a UNIDAD:\Documents and Settings\NOMBRE [Si fuese XP]
si Fuese vista UNIDAD:\usuario\NOMBRE
  #6 (permalink)  
Antiguo 30/07/2009, 18:44
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Obtener ruta de carpeta de usuario (VB6)

Hola, sino tambien podes usar una api para obtener las carpetas especiales del sistema...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
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 00:39.