SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: monkytrox en Viernes 28 de Abril de 2006, 17:46
-
hola como estan ??
tengo una aplicacion que llama un .bat, la funcion de este es el traspaso de archivos (promedio de 200mb aprox) a travez de un FTP, esto funciona correctamente al ejecutar el .bat de manera individual, mi pregunta es... desde visual como puedo controlar que este preceso se complete o no, para asi yo desde visual pueda enviarme correos por una u otra respuesta, lo del correo lo tengo listo, lo que me falta es controlar si el bat se ejecuta o no de manera correcta, tener el control sobre este Bat me urgue, ya que este preceso se corre a 1:00 am y a esas horas ya no me encuentro en mi lugar de trabajo....espero me ayuden :-)
gracias
monkytrox
-
Utiliza el comando Shell para ejecutar un .bat
-
hola amigo....gracias por responder....
yo lo que uso es lo siguiente...
Dim WSH as New Iwshruntimelibrary.iwshshell_class
WHS.Run = "Traspaso.bat"
Set WSH = NOTHING
esto es lo que uso, y el llamado al .bat desde visual me funciona, lo que no se que hacer es como detectar si el.bat se ejecuta de manera satisfactoria o no, para poder asi enviarme un correo....gracias
muchas gracias de antemano
monkytrox
-
Yo utilizo el shell execute para realizar una fusión de archivos y tampoco sabía como conocer cuando el shell se terminaba de ejecutar para poder continuar con el flujo del programa y se me ocurrio usar un timer y ponerle como condición que hasta que no exista el archivo que se crea no continúe... pienso que lo que puedes hacer es crear una archivo .txt dentro del .bat en el lugar que consideres que se ejecutó todo lo que necesitabas y luego desde tu programa verificar si este archivo existe. No se si fui lo suficientemente claro.
este es el codigo dentro del timer.
Private Sub Timer1_Timer()
If ProgressBar1.Value >= 100 And Dir("c:\yyy"+ lasttrack + ".mp3") <> "" Then
Timer1.Enabled = False
Unload Me
'haz algo....
Else
ProgressBar1.Value = ProgressBar1.Value + 10
End If
End Sub
:comp:
-
Yo utilizo el shell execute para realizar una fusión de archivos y tampoco sabía como conocer cuando el shell se terminaba de ejecutar para poder continuar con el flujo del programa y se me ocurrio usar un timer y ponerle como condición que hasta que no exista el archivo que se crea no continúe... pienso que lo que puedes hacer es crear una archivo .txt dentro del .bat en el lugar que consideres que se ejecutó todo lo que necesitabas y luego desde tu programa verificar si este archivo existe. No se si fui lo suficientemente claro.
este es el codigo dentro del timer.
Private Sub Timer1_Timer()
If ProgressBar1.Value >= 100 And Dir("c:\yyy"+ lasttrack + ".mp3") <> "" Then
Timer1.Enabled = False
Unload Me
'haz algo....
Else
ProgressBar1.Value = ProgressBar1.Value + 10
End If
End Sub
:comp: