Bonjour,
Oui j'ai même fait une petite fenêtre de messagerie instantanée dans mon logiciel.
Le code dans l'initialisation de la fenêtre :
HSurAppelServeur(hMessage, "MessageClient")
Voila le code de la fonction HEnvoiMessage
Procedure HEnvoiMessage(mes est une chaîne,Destinataire est un entier=1)
SI Destinataire=1 ALORS
HClient.Base=MaConnexion..BaseDeDonnées
HClient.Application=ProjetInfo(piNomEXE)+".exe ( "+ProjetInfo(piNomProjet)+" )"
SINON
HClient.Application=ProjetInfo(piNomEXE)+".exe ( "+ProjetInfo(piNomProjet)+" )"
FIN
SI EnModeTest() ALORS
HClient.Application="Plannissimo.exe ( Plannisssimo )"
FIN
mes="<ProtocolSPsoft>"+mes
RENVOYER HEnvoieMessageVersClient(MaConnexion,mes,1)
Voila le code qui intercepte les messages:
Procedure MessageClient(Type, Mes, duree)
SI PAS Mes[="<ProtocolSPsoft>" ALORS
DélaiAvantFermeture(duree*100)
Info(Mes)
DélaiAvantFermeture()
RETOUR
FIN
Mes=Mes[[Taille("<ProtocolSPsoft>")+1 A]]
logi est une chaîne
SI Mes="DemandeActualisation" ALORS
SI PAS HEnvoiMessage("OK/"+utili:ID) ALORS
FIN
RETOUR
FIN
SI Mes[="OK/" ALORS
UnePersonneEstConnectée(Val(Mes[[4 A]]))
RETOUR
FIN
SI Mes[="SUPEROK/" ALORS
logi=UnePersonneEstConnectée(Val(Mes[[9 A]]))
OuvreFenetreInfos("Nouvel utilisateur connecté !",logi+" vient de se connecter")
RETOUR
FIN
SI Mes[="URGENT/" ALORS
Mes=Mes[[8 A]]
Destinataire est un entier
Destinataire=ExtraitChaîne(Mes,1,"/")
SI Destinataire>0 ALORS
SI Destinataire<>utili:ID ALORS RETOUR
FIN
logi=ExtraitChaîne(Mes,2,"/")
Mes=Mes[[Taille(Destinataire+"/"+logi+"/")+1 A ]]
OuvreSoeur(FenUrgent,logi,Mes)
RETOUR
FIN
SI Mes[="BYE/" ALORS
UnePersonneSEstDéConnectée(Val(Mes[[5 A]]))
RETOUR
FIN
SI Mes[="MES/" ALORS
IDExpéditeur est un entier
IdDestinataure est un entier
IDExpéditeur=ExtraitChaîne(Mes,2,"/")
IdDestinataure=ExtraitChaîne(Mes,3,"/")
SI IdDestinataure<>utili:ID ET IdDestinataure<>0 ALORS RETOUR
Mes=Mes[[Taille("MES/"+IdDestinataure+"/"+IDExpéditeur+"/")+1 A]]
logi=ExtraitChaîne(Mes,1,TAB)
Mes=Mes[[Taille(logi+TAB)+1 A]]
SI IdDestinataure=0 ALORS
AjouteMessage(IDExpéditeur,Mes,Vrai)
SINON
AjouteMessage(IDExpéditeur,Mes)
FIN
SI MaFenêtre..Visible=Faux ALORS
OuvreFenetreInfos("Nouveau message !",logi+" a envoyé un message !","MES")
FIN
RETOUR
FIN
Peut-être que cela vous donnera des idées...
Cordialement,
Yann