|
| Detection fermeture outlook |
| Iniciado por jjacob, 13,jun. 2019 14:29 - 2 respuestas |
| |
| | | |
|
| |
| Publicado el 13,junio 2019 - 14:29 |
Bonjour,
Je suis en train de développer un service qui lance une application à la fermeture d'outlook, et je recherche actuellement un moyen 'propre' pour détecter qu'outlook a été lancé, puis fermé. Actuellement j'utilise ça :
TANTQUE ObjetActif("OutLook.Application") FIN LanceAppliAssociée(mon_appli) quelqu'un connaitrai quelque chose de mieux ?
Merci d'avance |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 14,junio 2019 - 10:24 |
Bonjour, Es-tu allé voir du côté de ExeLancé ?
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2 mensajes |
|
| Publicado el 24,julio 2019 - 12:03 |
Salut,
S'il n'y a pas de risque de conflit entre plusieurs instances de Outlook alors tu peux simplement te débrouiller avec Handle() et ExeLance() je pense.
Sinon il faut utiliser les API windows pour détecter l'existance d'une fenêtre grâce a son nom, et là ça se complique un peu :
Procedure F_Cherche_Titre_Fenetre(v_nom) Lg, Ok, hWnd sont des entiers lpString est une chaîne fixe sur 255
hWnd = AppelDLL32("User32", "GetWindow", Handle(), 0)
TANTQUE hWnd <> 0 Lg = AppelDLL32("User32", "GetWindowTextLengthA", hWnd) Ok = AppelDLL32("User32", "GetWindowTextA", hWnd, &lpString, Lg + 1) SI Ok ALORS SI Contient(lpString,v_nom) ALORS RENVOYER Vrai FIN FIN hWnd = AppelDLL32("User32", "GetWindow", hWnd, 2) FIN
RENVOYER Faux
Ca c'est la fonction qui détecte si ta fenêtre est ouverte en fonction de son nom . Le code en dessous permet d'utiliser la procédure du dessus pour vérifier que l'appli s'est bien lancée, puis d'attendre qu'elle se ferme.
v_retour est un booléen = Faux
SI PAS LanceAppliAssociée("C:\temp\170_test.xlsx") ALORS Erreur("Impossible d'ouvrir le fichier") RENVOYER Faux FIN Trace("lancement") Temporisation(1000ms) v_retour = F_Cherche_Titre_Fenetre("170_test.xlsx") TANTQUE v_retour = Faux Trace("fermé") Temporisation(200ms) v_retour = F_Cherche_Titre_Fenetre("170_test.xlsx") FIN Trace("ouvert") TANTQUE v_retour = Vrai Trace("ouvert") Temporisation(200ms) v_retour =F_Cherche_Titre_Fenetre("170_test.xlsx") FIN Trace("fermé")
Evidemment tu adaptes tout ça a tes besoins, ne te contente pas d'un copier/coller. |
| |
| |
| | | |
|
| | | | |
| | |
|