PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → fermeture application externes
fermeture application externes
Débuté par jean-marie, 13 juin 2025 12:36 - 7 réponses
Posté le 13 juin 2025 - 12:36
bonjour,

Dans une table chaque ligne contient un nom de fichier et un bouton pour l'ouvrir.
Les extensions des fichiers sont multiples (excel, worrd, images, avi etc....)
J'utilise donc "lanceappliassociée" pour afficher le fichier.
Je souhaite lorsque je clique sur un bouton pour ouvrir le fichier, fermer la précédente application ouverte (pour ne pas ouvrir une palanquée de fichiers).
Comment faire ?

J'ai la même problématique avec une table contenant cette fois-ci non pas des fichiers mais des urls.
Un bouton ouvre l'url dans un onglet du navigateur.
Comment fermer l'onglet précédemment ouvert lorsque j'ouvre une autre url dans un autre onglet ?

Merci pour votre aide.
jean-marie
Membre enregistré
290 messages
Posté le 13 juin 2025 - 14:06
Bonjour,

Pour l'url je ne sais pas vous répondre.

Par contre, pour les applications, il est possible de connaitre tous les identifiants de processus parents en utilisant la fonction ExeListeProcessus(exePIDParent)
La solution consiste à détecter tous les processus fils de votre application, et donc ceux qui ont été démarré par la fonction LanceAppliAssociée() puis de terminer leur exécution avec ExeTermine()

Exemple avec un document PDF et un document Word :
LanceAppliAssociée("C:\Users\Test\Documents\Test1.pdf")
LanceAppliAssociée("C:\Users\Test\Documents\Test2.docx")
SI OuiNon("Voulez-vous fermer les documents ouverts ?") ALORS
sListeProcessus est une chaîne = ExeListeProcessus(exePIDParent,exePID)
POUR TOUTE chaîne sProcessus de sListeProcessus SEPAREE PAR RC
SI Val(ExtraitChaîne(sProcessus,1))=ExeDonnePID() ALORS
ExeTermine(Val(ExtraitChaîne(sProcessus,2)))
FIN
FIN
FIN


Cdlt
Message modifié, 13 juin 2025 - 14:16
Posté le 07 juillet 2025 - 16:04
Bonjour Fabrice,

Je vous remercie (tardivement, mais je suis parti en congés) pour cette information.
Je vais faire un éssai immédiatement.
Bien cordialement

Jean-Marie Le Creurer
Posté le 29 juillet 2025 - 10:23
bonjour Fabrice

J'ai appliqué ta méthode mais elle ne semble pas fonctionner avec les fichiers .png , .mp4
Avez-vous déjà rencontré ce problème ?

bonne journée
j marie
Membre enregistré
290 messages
Posté le 29 juillet 2025 - 11:14
Bonjour,
Je viens de tester et ça fonctionne !
Pour info, c'est Paint et VLC qui sont lancés sur ma machine pour pour les fichiers (png et mp4)
Cdlt
Membre enregistré
902 messages
Posté le 30 juillet 2025 - 10:07
Bonjour,

Au pire stocker le détail de ce qui est "lancé", et killer celui-ci si <> vide avant de lancer un autre exe ??
Une solution pansement parmis d'autres ...

Bon dev
Christian
Posté le 31 juillet 2025 - 22:04
kick71 a écrit :
Bonjour,

Au pire stocker le détail de ce qui est "lancé", et killer celui-ci si <> vide avant de lancer un autre exe ??
Une solution pansement parmis d'autres ...

Bon dev
Christian


Merci pour vos retours, je vais tenter et je reviens vers vous.
bonne soirée

jm
Posté le 12 août 2025 - 16:58
bonjour,

J'ai finalement réglé mon problème en introduisant une tempo entre le "lanceppliassociée" et le "exelisteprocessus".
Cette tempo ne semble pas nécessaire pour les .pdf mais elle l'est pour les images et les vidéos.
Je l'ai fixée à 300 millissecondes.

Merci pour vos contributions.
bonne journée.

jm