SHELL ->> hellpppp (avansado)

upszot
21 de Diciembre del 2004
hola aca ando parado con esto que no se pq no me funciona...
________________________________________________
Dim a As String
a = "nbtstat -a 10.0.0.2 > C:prueba.txt "
RetVal = Shell(a, 1)
___________________________________________
bueo aclaro una cosa ... abriendo una ventana de dos y poniendo :
nbtstat -a 10.0.0.2 > C:prueba.txt
funciona , pero ejecutando lo mismo desde el shell no me crea el archivo... no se que tengo que hacer para que funcione por favor alguien que me de una mano con esto.
grax.

mcdowell
21 de Diciembre del 2004
crea un bay un archivo .bat y haz esto espero te sirva de algo
Sub main()
Dim a As String
a = "c:dim.bat"
Call Shell(a, 1)
End Sub

upszot
21 de Diciembre del 2004
es que en si lo que tengo que ejecutar me lo estan entrando en unos textboxs y tener que hacer un archivo cada ves que me cargan el dato es medio quilombo...
asi es el codigo
______________________________________________
IP_MAQ = Trim(Txt_IP_Maquina(0)) & "." & _
Trim(Txt_IP_Maquina(1)) & "." & _
Trim(Txt_IP_Maquina(2)) & "." & _
Trim(Txt_IP_Maquina(3))
RutaSalida = " > " & Chr(34) & App.Path & "" & IP_MAQ & ".txt" & Chr(34)
RetVal = Shell("nbtstat -a " & IP_MAQ & RutaSalida, 1)
________________________________________________
lo anterior era un codigo de prueba para ver si me funcionaba pero tampoco ando....

mvallejos
21 de Diciembre del 2004
Posiblemente sea un problema de tiempos, el Shell es asíncrono, es decir, que el flujo de programa de tu sistema sigue aunque el programa llamado con Shell aún no termine, tenés que buscarte ejemplos de Shell ejecutados en forma síncrona

Tenés un ejemplo en

http://elguille.info.net/index.asp

Saludos



mvallejos
21 de Diciembre del 2004
corrijo

la direccion es

http://www.elguille.info/indice.asp

upszot
21 de Diciembre del 2004
si pero el tema es que lo corri paso a paso (F8) lo hace rapido y me cambio a el explorador de archivos refresco la vetana para ver si crea el archivo y no lo hace, solo lo crea si dentro de una ventana de cmd pongo la instruccion = me voy a fijar en la paguina del guille a ver si encurntro alguna forma de hacerlo...

mvallejos
21 de Diciembre del 2004
Que raro, es probable que el programa que estás ejecutando no direccione salidas a archivos.
Lo del Guille, tenés que buscar en la sección APIs, la parte de shell síncrono, que es lo que te va a ayudar a resolver el problema, ya que es un bucle que te permitirá chequear la existencia del archivo de salida.

Si lo encuentro entre mis cosas, te lo mando

mvallejos
21 de Diciembre del 2004
Fijate la ruta a la que hace referencia el bat, yo puse algo que funciona en mi PC, posiblemente no encuentra la ruta.
O mejor, si tenés bien seteados los parámetros de entorno, no necesites path

upszot
21 de Diciembre del 2004
hola mvallejos gracias por el archivo .... lo estuve viendo pero tengo un PEQUEÑO problemita... (ya me estoy volviendo loco) pq no tendria por que hacerlo pero bueno, en el "FrmShell" la linea
hShell = Shell(LineaComando, vbMinimizedFocus)
me tira un error 5 en tiempo de ejecucion .... (supuestamente que metiste mal algun parametro ... pero esta todo bien...) (el .bat lo ejecutas sin el programa y funciona de lo mas bien)... en fin ya no se que hacer...