Esperar a que termine la plicaion llamada con ShellExecute

Esperar a que termine la plicaion llamada con ShellExecute

Postby J. Ernesto » Sun Oct 13, 2024 6:38 am

Amigos buenas Noches... Días

Estoy llamando un programa externo para que envíe un archivo a un WS, usando shellexecute.
mi aplicación no alcanza a espera a que termine de ejecutarse el programa llamado con el shellexecute

Cómo implementar a que espere la terminación de segundo programa?

En el foro he visto shellexecuteEX?, alguien tiene un ejemplo de como usarlo...

O que otra alternativa tengo....

Muchas Gracias.....
J. Ernesto Pinto Q.
Fwh_x64 2407 + BCC++_x64 7_70__6_72 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 161
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia


Re: Esperar a que termine la plicaion llamada con ShellExecute

Postby karinha » Sun Oct 13, 2024 1:15 pm

See below all the values ??for the second parameter of the WAITRUN() function:

0 - Hides the window and passes the activation to another window.
1 - Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position (same as 9).
2 - Activates a window and displays it as an icon.
3 - Activates a window and displays it as a maximized window.
4 - Displays a window in its latest size and position. The window that is currently active remains active.
5 - Activates a window and shows it in its current size and location.
6 - Minimizes the specified window and activates the top-level window within the system list.
7 - Displays a window as an icon. The window that is currently active remains active.
8 - Displays a window, in its current state. The window that is currently active remains active.
9 - Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position (the same as 1).

Hugs,

xComando := "copy /b temp.txt prn > NUL"

WaitRun( xCOMMAND, 7 )

Regards, Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Esperar a que termine la plicaion llamada con ShellExecute

Postby JoseAlvarez » Mon Oct 14, 2024 1:12 pm

J. Ernesto wrote:Amigos buenas Noches... Días

Estoy llamando un programa externo para que envíe un archivo a un WS, usando shellexecute.
mi aplicación no alcanza a espera a que termine de ejecutarse el programa llamado con el shellexecute

Cómo implementar a que espere la terminación de segundo programa?

En el foro he visto shellexecuteEX?, alguien tiene un ejemplo de como usarlo...

O que otra alternativa tengo....

Muchas Gracias.....


Ernesto, yo lo uso asi y me funciona, prueba...

Code: Select all  Expand view  RUN
ShellExecute( 0, "open", "whatsapp://send?phone="+alltrim(aQueryToSms[nCiclo,8])+"&text="+cTexto)
 do while IsExeRunning("ShellExecute.xsd")
 enddo
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm


Re: Esperar a que termine la plicaion llamada con ShellExecute

Postby JoseAlvarez » Mon Oct 14, 2024 4:05 pm

Enrico Maria Giordano wrote:Interesting. But what is ShellExecute.xsd?



Enrico, good question. I asked myself the same thing when I couldn't find it with the .EXE extension

When I migrated to WINDOWS 11 I encountered that change. Apparently it has to do with something for XML compatibility.

Hopefully one of the masters will shed some light on this. (google traslator)


Enrico, buena pregunta. Me pregunté lo mismo al no encontrarlo con la extensión .EXE

Cuando migré a WINDOWS 11 me encontré con ese cambio. Al parecer tiene que ver con algo para compatibilidad de XML.

Ojalá uno de los master nos de una luz al respecto.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: Esperar a que termine la plicaion llamada con ShellExecute,

Postby J. Ernesto » Mon Oct 14, 2024 10:58 pm

José

Implemente algo similar y funciona perfectamente:

DO WHILE SW60 = " "
IF FILE ( ".\cufe_ok.txt" ); SW60 := "*"
ELSEIF FILE ( ".\cufe_error.txt" ); SW60 := "*"
ELSE ; SYSWAIT ( 0.1 )
ENDIF
ENDDO

Al llamar la segunda aplicación, esta debe devolver la creación de un txt.

Gracias.
J. Ernesto Pinto Q.
Fwh_x64 2407 + BCC++_x64 7_70__6_72 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 161
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia

Re: Esperar a que termine la plicaion llamada con ShellExecute

Postby JoseAlvarez » Mon Oct 14, 2024 11:04 pm

Excelente ernesto!!

Aún puedes mejorar ese código si usas iif y or preguntando por la existencia de los archivos y cambiando el suiche todo en una sola linea
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 71 guests