PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Fermer fenêtre ouverte avec LanceAppliAssociée()
Fermer fenêtre ouverte avec LanceAppliAssociée()
Iniciado por alain.defonpre, 10,ago. 2019 08:01 - 5 respuestas
Publicado el 10,agosto 2019 - 08:01
Bonjour,

J'ouvre un PDF avec "LanceAppliAssociée"

TestFenOuverte un booléen = LanceAppliAssociée("C:\monlogiciel\aide\aide.pdf")

Une fois lancée, je cherche à connaitre le chemin complet de l'application lancée et ce afin de pouvoir la fermer par programmation avec la commande:
TueuseFenêtre un booléen = ExeTermine("C:\?????????????????")

Sur le poste utilisateur il peut y avoir plusieurs lecteurs PDF mais qu'un seul par défaut.

J'ai également essayé avec :
TueuseFenêtre = ExeTermine(ExeDonnePID())

Mais dans ce dernier cas, c'est toujours la fenêtre de mon application que se ferme et non la fenêtre ouverte avec LanceAppliAssociée()

Une idée SVP

ALAIN
Publicado el 12,agosto 2019 - 16:11
Bonjour,

Il me semble que l'astuce consiste à comparer la liste des processus avant et après le lanceappliassocié.
et de supprime celui qui est en trop.

ListeAjoute(LISTE_Appli, ExeListeProcessus(exePID, exeNomCourt))


Pas top comme solution, mais j'ai déjà vu ça.

si quelqu'un a mieux...
Publicado el 12,agosto 2019 - 17:06
Quelque chose me chagrine.
Tu lance l'affichage du PDF. Ok.
L'utilisateur est en train de le lire.
Quand veux-tu tuer la tâche ?
Soit-il l'a fermé lui-même, soit il souhaite rester dedans.
Si tu lui tue sa tâche sans lui demander son avis, il va pas être content, le gars.
Sinon, Thierry t'a donné une piste.
Publicado el 12,agosto 2019 - 20:33
Bonjour

Merci de vos réponses.

En fait, dans le paramétrage d'un soft, je laisse le choix soit d'utiliser un lecteur PDF interne (pour lequel je n'ai pas de soucis de gestion des pdf/aides contextuelles)
soit d'utiliser le lecteur PDF par défaut de Windows (non pilotable par WD) et c'est dans ce dernier cas que le souhaite gérer "LanceAppliAssociée("C:\monlogiciel\aide\aidexxx.pdf")"

Je souhaite faire une aide simple, pas de fichier HELP-CHM
Donc si une aide contextuelle/pdf est déjà en cours (même en fenêtre réduite) et que l'utilisateur demande une autre aide/pdf, il faut fermer le lecteur en cours puis le réouvrir avec un nouveau "LanceAppliAssociée("C:\monlogiciel\aide\aidexxx.pdf")"

Je vais tester
ListeAjoute(LISTE_Appli,ExeListeProcessus(exePID,exeNomCourt))

Cela va peut être convenir...

Alain
Miembro registrado
4.361 mensajes
Publicado el 13,agosto 2019 - 05:22
Bonjour,
.
Alain a écrit :
Donc si une aide contextuelle/pdf est déjà en cours (même en fenêtre réduite) et que l'utilisateur demande une autre aide/pdf, il faut fermer le lecteur en cours puis le réouvrir avec un nouveau "LanceAppliAssociée("C:\monlogiciel\aide\aidexxx.pdf")"

Pas nécessairement, le LanceAppliAssocié va ouvrir le PDF soit dans une nouvelle session du lecteur soit dans un nouvel onglet. Ta manière de faire interdit la lecture de plusieurs PDF simultanément. Il va râler le gars. C'est un coup à avoir un post "Mon lecteur PDF se ferme et s'ouvre"

--
Il y a peut être plus simple, mais, ça tourne
Publicado el 13,agosto 2019 - 12:10
Pourquoi donner le choix à l'utilisateur, si c'est juste pour afficher l'aide, perso j'utilise le champ PDF de WD. Je ne m'embête pas.