OVH Cloud OVH Cloud

Envoyer un message à une autre application

2 réponses
Avatar
Drizzit
Bonjour =E0 toutes et =E0 tous.
Je suis en mal d'inspiration pour faire la chose suivante :

J'ai application qu'on va appeler "Portail", qui affiche une liste
d'autres applications et qui permet de les lancer. Cette liste
d'applications est tir=E9e depuis un fichier Xml.
Cette application "Portail" est toujours active sur les postes de
travail.

Ce qu'on me demande de faire, c'est, par email, d'envoyer un lien vers
un programme "Mise =E0 jour", qui ajoute une autre application dans la
liste, c'est =E0 dire une mise =E0 jour du fichier xml. Jusque l=E0 pas de
probl=E8mes.

Ma question est comment le programme "Mise =E0 jour" peut dire =E0
l'application "Portail", "H=E9 oh, j'ai modifi=E9 le fichier, tu peux le
recharger..."

Je souhaite =E9viter un timer dans "Portail", qui va v=E9rifier la date
de modification du fichier xml par rapport =E0 sa derni=E8re date lors de
sa lecture.

Merci

2 réponses

Avatar
Christian Hugoud
"Facile..."

Il te suffit d'envoyer un message avec sendmessage à la feuille de
l'application Portail. Comme tu auras sous-classé cette feuille, tu captes
le message et tu agis comme tu veux.

Cela veut dire que les autres applications sont capables de trouver cette
feuille de Portail...

Pour cela, tu dois déjà implémenter une propriété dans le handle de la
feuille de Portail (dans le form_load) avec :
Public Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As
Long, ByVal lpString As String, ByVal hData As Long) As Long

Après quoi l'autre application trouve la feuille de Portail avec un
EnumerateWindows...

Bref, c'est presque simple....

Si tu veux du code, j'en ai :

Cela fonctionne bien, mais c'est un peu complexe à mettre en oeuvre.

Christian



"Drizzit" a écrit dans le message de news:

Bonjour à toutes et à tous.
Je suis en mal d'inspiration pour faire la chose suivante :

J'ai application qu'on va appeler "Portail", qui affiche une liste
d'autres applications et qui permet de les lancer. Cette liste
d'applications est tirée depuis un fichier Xml.
Cette application "Portail" est toujours active sur les postes de
travail.

Ce qu'on me demande de faire, c'est, par email, d'envoyer un lien vers
un programme "Mise à jour", qui ajoute une autre application dans la
liste, c'est à dire une mise à jour du fichier xml. Jusque là pas de
problèmes.

Ma question est comment le programme "Mise à jour" peut dire à
l'application "Portail", "Hé oh, j'ai modifié le fichier, tu peux le
recharger..."

Je souhaite éviter un timer dans "Portail", qui va vérifier la date
de modification du fichier xml par rapport à sa dernière date lors de
sa lecture.

Merci
Avatar
Drizzit
Vu que je veux comprendre ce que je fais, j vais essayer par moi même,
et si toute fois je n'arrive pas en mettre cela en oeuvre, je me
permettrai de te demander un bout de code.
En tout cas, un grand merci pour cette solution.