Validar ruta del escritorio en visual basic 6.0

Mi pregunta está relacionada a este problema. Tengo dos equipos en los cuales me gustaría trabajar con un proyecto realizado en uno, pero el problema que tengo es que en el equipo que realizo los cambios tiene esta ruta c:\users\arang\desktop 

Pero cuando lo paso al otro tengo que cambiar todo lo asociado a \arang\ ya que la ruta del otro es

C:\users\fernando\desktop

Hay alguna forma de sustituir \arang\ y \fernando\ por algo que funcione en los dos.

1 respuesta

Respuesta
2

Vas a tener que usar una API de windows para saber la ruta de esa carpeta de sistema. Puedex ver un ejemplo en este enlace: http://www.elguille.info/vb/VB_API03.HTM (es la que está en el número 11)

En el ejemplo que te menciono, la primera parte es la declaración de la API, que tendrás que poner en algún módulo público:

'La longitud máxima de un directorio puede ser 260
Const MAX_PATH = 260
'Algunas de las constantes
Const CSIDL_DESKTOP = 0
Const CSIDL_PROGRAMS = 2
Const CSIDL_STARTUP = 7
Const CSIDL_STARTMENU = 11
'La declaración del API:
Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" _
    (ByVal hWnd As Long, ByVal sPath As String, _
    ByVal Folder As Long, ByVal Create As Long) As Long

En la segunda parte, es dónde obtienes la ruta (te modifico el ejemplo para que te muestre la ruta del escritorio):

    Dim sPath As String
    sPath = String$(MAX_PATH + 1, 0)
    Call SHGetSpecialFolderPath(Me.hWnd, sPath, CSIDL_DESKTOP, False)
    'Quitarle el CHR$(0) del final
    sPath = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
    MsgBox "El escritorio está en: " & vbCrLf & sPath

¡Gracias! Sveinbjorn me cuesta entenderlo  ,soy un aficionado, pero entrare en la página que me indicas. 

Hola sveinbjorn se vuelvo a mandar un correo ya que recordé que un experto del grupo me dio esta respuesta la cual creo que funciona lo malo es que no recuerdo quien fue para poder agradecérselo otra vez.

De todas formas puede que ayas sido tú por eso te doy de nuevo las gracias.

Este es el código puesto al iniciar el proyecto

 Dim Nombredelescritorio As String

Let Nombredelescritorio = CreateObject("wscript.shell").specialfolders("desktop")

Pues esa no la conocía, pero como tampoco manejo vb6, tampoco me extraña...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas