Weno, primero deciros que ya se que existe la funcion Environ que resuelve variables de entorno, pero lo que yo quiero es que un programa lo haga automaticamente, teniendo una string...pongo un ejemplo:
Imaginaros que tengo este String:
%windir%\system32\cmd.exe
Pues quiero que me lo convierta en este (suponiendo que la variable de entorno windir sea C:\Windows):
C:\Windows\system32\cmd.exe
Supongo que lo que tengo que hacer es separar lo de dentro del %
y hacer
Environ("windir") & "\systen32\cmd.exe"
Pero no se como hacer para separar ese windir
Weno, si alguien me puede ayudar que lo diga...
Saludos ;)
con la funcion instr() o instr$() no me acuerdo bien
esta funcion te dice la posicion de un caracter en una cadena a partir de un punto.
Partiendo de la posicion 1 empezas a buscar el primer % supongamos en la posicion POS1 y a partir de la posicion (POS1 + 1) buscas el siguiente % ahora tenes la POS2
despues con la funcion Mid$() o Mid() tampoco me acuerdo bien, (fijate en la ayuda de VB) tomas una porcion de la cadena a partir de cierta posicion (POS1) y de cierta longitud (POS2 - POS1) y vas a tener lo que buscas (caracter mas, caracter menos). Espero que te sea util. ;)
Private Function hola(x As String) As String
Dim t() As String
t = Split(x, "%")
hola = Environ(t(1)) & t(2)
End Function
y lo usas
Private Sub Command1_Click()
MsgBox hola("%windir%\system32\cmd.exe")
End Sub
O mas facil a mi parecer:
Private Sub Command1_Click()
Dim Ruta1 As String
Ruta1 = "%windir%\system32\cmd.exe"
MsgBox Replace(Ruta1, "%windir%", Environ("WINDIR"))
End Sub
si pero si le mete %systemroot% ese code no funciona ;).
Ya lo solucioné, gracias ;)
Citarsi pero si le mete %systemroot% ese code no funciona
Sip, tienes razon no me habia dado cuenta de ese detalle ;)