Weno como sabreis algunos en Windows las variables de entorno se llaman entre % ...como por ejemplo %windir% y eso devuelve la ruta de Windows...
Y weno en VB no se reconocen de la misma forma...por ejemplo %windir%\system32 en windows ya suponeis que ruta marca (provar a poner eso en ejecutar) pero para VB es una ruta no valida...en VB hay que usar la funcion Environ...por ejemplo Environ("windir")
lo que puse antes en VB sería así
Environ("windir") & "\system32"
Pues bueno yo como acostumbro usar variables de entorno en formato "%windir%" (y por ejemplo para poner una ruta en un TextBox es la mejor manera de hacerlo) hice una funcion sencilla que te devuelve la ruta expandida de las variables de entorno...es muy sencillo simplemente parte las strings por el simbolo % y despues le pasa lo de dentro a la funcion Environ...pero weno por si a alguien le sirve y tal la pongo...es muy sencilla:
Private Function Remplazar(ByVal texto As String) As String
Dim pos(0 To 1) As Long
On Error Resume Next
Do
pos(0) = InStr(1, texto, "%")
pos(1) = InStr(pos(0) + 1, texto, "%")
If pos(1) = 0 Then Exit Do
texto = Left(texto, pos(0) - 1) & Environ(Mid(texto, pos(0) + 1, pos(1) - pos(0) - 1)) & Mid(texto, pos(1) + 1)
Loop
Remplazar = texto
End Function
Saludos ;)
En El Code De fulano_ de residencia obtiene el directorio de windows y system32 así:
Set obj = CreateObject("Scripting.FileSystemObject") 'declaramos un objeto tipo fileSystem object
Set win = obj.GetSpecialFolder(0) 'para obtener la carpeta de windows y system
Set sys = obj.GetSpecialFolder(1)
win = LCase(win) 'las ponemos en minusculas
sys = LCase(sys)
jeje salu2
Si y también hay APIs para obtener los directorios...pero por ejemplo está muy bien esto:
%homedrive%%homepath%
Esto devolvería C:\Documents and Settings\USUARIO...donde C es la unidad y USUARIO depende del nombre de usuario...y mira con las variables de entorno te ahorras mucho trabajo...
también stán %programfiles% y muchas mas que podéis ver escribiendo set en el cmd.exe
Saludos ;)
Weno solo era para decir que el code tenía un fallo, ya lo he corregido...
Saludos ;)