Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: nhaalclkiemr en 10 Agosto 2007, 21:16 pm



Título: Resolver variables de entorno en una string
Publicado por: nhaalclkiemr en 10 Agosto 2007, 21:16 pm
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:

Código:
%windir%\system32\cmd.exe

Pues quiero que me lo convierta en este (suponiendo que la variable de entorno windir sea C:\Windows):

Código:
C:\Windows\system32\cmd.exe

Supongo que lo que tengo que hacer es separar lo de dentro del %

y hacer

Código:
Environ("windir") & "\systen32\cmd.exe"

Pero no se como hacer para separar ese windir

Weno, si alguien me puede ayudar que lo diga...

Saludos ;)


Título: Re: Resolver variables de entorno en una string
Publicado por: Achernar en 10 Agosto 2007, 21:27 pm
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.  ;)


Título: Re: Resolver variables de entorno en una string
Publicado por: byebye en 10 Agosto 2007, 21:45 pm
Código:
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

Código:
Private Sub Command1_Click()
MsgBox hola("%windir%\system32\cmd.exe")
End Sub


Título: Re: Resolver variables de entorno en una string
Publicado por: ~~ en 10 Agosto 2007, 23:47 pm
O mas facil a mi parecer:

Código
  1. Private Sub Command1_Click()
  2. Dim Ruta1 As String
  3. Ruta1 = "%windir%\system32\cmd.exe"
  4. MsgBox Replace(Ruta1, "%windir%", Environ("WINDIR"))
  5. End Sub


Título: Re: Resolver variables de entorno en una string
Publicado por: byebye en 11 Agosto 2007, 01:12 am
si pero si le mete %systemroot% ese code no funciona ;).


Título: Re: Resolver variables de entorno en una string
Publicado por: nhaalclkiemr en 12 Agosto 2007, 18:12 pm
Ya lo solucioné, gracias ;)


Título: Re: Resolver variables de entorno en una string
Publicado por: ~~ en 13 Agosto 2007, 01:15 am
Citar
si pero si le mete %systemroot% ese code no funciona

Sip, tienes razon no me habia dado cuenta de ese detalle ;)