Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Octubre 23, 2012, 03:35:47 pm

Título: Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: E N T E R en Octubre 23, 2012, 03:35:47 pm
Tengo este code que utilizo para hacer BK de mi bd MySQL. como puedo saber si ha terminado de hacer la copia. o si hay una forma que me tire un msgbox copia completa o algo asi y cerrar la ventana de Ms-DOS

Código: (VB) [Seleccionar]
Set comando1 = CreateObject("WSCript.shell")
comando1.run "cmd /K " & txtRutaMySQL.Text & " --user=root --password=xxx --port=3306 --databases control_hotel > c:\x\b\archivo.sql"
Set comando1 = Nothing
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: raul338 en Octubre 23, 2012, 03:43:13 pm
Usá esta funcion, shellwait

ShellWait (http://leandroascierto.com/foro/index.php?PHPSESSID=7cd6c40c51462868fccc7678a1b6c4a2&topic=1673.msg9448#msg9448)

espera a que termine :P
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: E N T E R en Octubre 23, 2012, 04:15:55 pm
Hice así Raul, pero no me tira ningun error y no hace el BK

Código: (VB) [Seleccionar]
Private Sub Command3_Click()
   
    MousePointer = MousePointerConstants.vbHourglass
           
    'Contenido de txtRutaMySQL.Text = C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump.exe
   
    Call ShellWait(txtRutaMySQL.Text, "--user=root --password=xxx --port=3306 --databases control_hotel > ", "c:\x\b\archivo.sql")
   
    MousePointer = MousePointerConstants.vbDefault

End Sub
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: seba123neo en Octubre 23, 2012, 04:31:44 pm
proba esta funcion shellandwait que usa openprocess, es la que mas veo en todos lados.

Shell to Another Application and Wait Until it Finishes (http://www.freevbcode.com/ShowCode.asp?ID=99)

y como parametro le pasas todo el comando directo, ahi no estoy seguro pero para mysql yo uso algo asi:

mysqldump.exe -u root -proot basededatos -h localhost --result-file=back.sql
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: E N T E R en Octubre 23, 2012, 05:44:22 pm
Funciona bien ese Seba, no hay una forma que cuando termine me tire un msgbox.
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: seba123neo en Octubre 23, 2012, 06:18:09 pm
fijate que la funcion devuelve un boolean, si termino bien devuelve true y sino false.

asi que hace algo como

if shellandwait = true then
   msgbox "termino bien"
else
   msgbox "no funco ni mierda"
end if


saludos.
Título: Re:Como saber cuando ha terminado lo que mande a MS-DOS
Publicado por: raul338 en Octubre 24, 2012, 12:03:21 am
El problema es que estas usando mal, el tercer parametro no es donde se hará backup, y no podes hacer tipo batch que con ">" tiras el resultado a un archivo...

EL tercer parametro es la carpeta donde se ejecutará el exe