PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Bug ExeTermine ?
Bug ExeTermine ?
Iniciado por Patrice, 02,oct. 2007 11:46 - 7 respuestas
Publicado el 02,octubre 2007 - 11:46
SI ExeLancé("citsync.exe")>0 ALORS
info("J'y suis")
SI ExeTermine("citsync.exe") ALORS
info("Le prog est terminé")
FIN
FIN

Ceci n'a pas l'air de fonctionner !
ExeLancé reconnait bien le cas, mais ExeTermine ne "tue" pas le prog.

Si quelqu'un a une idée du problème et surtout de la solution, je suis preneur.
Bav
Patrice
Publicado el 02,octubre 2007 - 16:04
Le 02/10/2007, Patrice a supposé :

SI ExeLancé("citsync.exe")>0 ALORS
info("J'y suis")
SI ExeTermine("citsync.exe") ALORS
info("Le prog est terminé")
FIN
FIN

Ceci n'a pas l'air de fonctionner !
ExeLancé reconnait bien le cas, mais ExeTermine ne "tue" pas le prog.

Si quelqu'un a une idée du problème et surtout de la solution, je suis
preneur. Bav
Patrice


est ce un auto kill ? si oui un finprogramme suffit

--
Cordialement JeAn-PhI
Publicado el 03,octubre 2007 - 12:37
Ben, non, hein.
C'est effectivement lancé à partir d'un autre programme.
Merci quand même.
Publicado el 03,octubre 2007 - 14:43
Bonjour Patrice...

d'après la doc, les cas ou exetermine ne fonctionne pas sont:
- si l'exécutable n'est pas instancié (l'exécutable n'est pas lancé):
visiblement, de ce coté la, tu es blindé

- si l'utilisateur ne dispose pas de droits suffisants pour détruire une
des instances: CA, ca pourrait être un problème

- si la DLL PSAPI n'est pas disponible sous Windows NT ou 2000: et CA
aussi..

A voir

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com/index_FR.html



Patrice wrote:
SI ExeLancé("citsync.exe")>0 ALORS
info("J'y suis")
SI ExeTermine("citsync.exe") ALORS
info("Le prog est terminé")
FIN
FIN

Ceci n'a pas l'air de fonctionner !
ExeLancé reconnait bien le cas, mais ExeTermine ne "tue" pas le prog.

Si quelqu'un a une idée du problème et surtout de la solution, je suis preneur.
Bav
Patrice
Publicado el 03,octubre 2007 - 19:04
Merci Fabrice,
J'avais bien lu la doc.
Pour parodier les vidéos de démo de PCSoft:
"eh bien, pour fermer une appli en cours d'execution a partir d'un autre programme, il suffit d'écrire [ExeTermine("lenomduprog")]. Et voilà, c'est tout."
Mais ça ne marche pas...

Bon, ça me gave, va falloir utiliser une autre solution.
Publicado el 09,octubre 2007 - 12:30
j'ai eu la même embrouille, je me suis débrouillé autrement
Publicado el 28,octubre 2009 - 18:41
La méthode consiste à utiliser depuis l'application qui doit arrêter l'appli un message windows utilisateur (exemple no 0x0401) qui sera recu par l'application à "tuer" et qui sefermera dès qu'elle recoit ce message windows:

Déclaration sur l'application appelante

CONSTANT
WM_STOP = 0x0401
FIN

et au lieu d'appeler ExeTermine(), utiliser
SendMessage(SysFenHandle("TitreFEN1"),WM_STOP,0,0)

Ensuite sur l'Appli.exe (si elle a été crée avec windev
idem créer la meme déclaration de message :
CONSTANT
WM_STOP = 0x0401
FIN
et créer un évènement sur l'initialisation de la fenêtre principale FEN1 ayant pour titre "TitreFEN1"
id = Evénement("Kill_me", "FEN1", WM_STOP)

puis dans la procédure locale à la FEN1 "Kill_me"
FinEvénement(id)
Ferme(FEN1)


Et le tour est joué.
Publicado el 28,octubre 2009 - 18:51
La méthode consiste à utiliser depuis l'application qui doit arrêter l'appli un message windows utilisateur (exemple no 0x0401) qui sera recu par l'application à "tuer" et qui sefermera dès qu'elle recoit ce message windows:

Déclaration sur l'application appelante

CONSTANT
WM_STOP = 0x0401
FIN

et au lieu d'appeler ExeTermine(), utiliser
SendMessage(SysFenHandle("TitreFEN1"),WM_STOP,0,0)

Ensuite sur l'Appli.exe (si elle a été crée avec windev
idem créer la meme déclaration de message :
CONSTANT
WM_STOP = 0x0401
FIN
et créer un évènement sur l'initialisation de la fenêtre principale FEN1 ayant pour titre "TitreFEN1"
id = Evénement("Kill_me", "FEN1", WM_STOP)

puis dans la procédure locale à la FEN1 "Kill_me"
FinEvénement(id)
Ferme(FEN1)


Et le tour est joué.