PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD12] HSurAppelServeur
[WD12] HSurAppelServeur
Débuté par reda, 15 juil. 2008 10:49 - 3 réponses
Posté le 15 juillet 2008 - 10:49
Bonjour chers développeurs;
j'aimerais savoir si quelqu'un a déjà utilisé la fonction HSurAppelServeur pour envoyer des données sur des postes clients
SVP si vous avez un code documnté
Merci pour votre collaboration
Posté le 18 juillet 2008 - 12:53
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)

//adminPC-de-YannWDTST.EXE ( Plannisssimo )01F120055n12.00Keb0

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

//HClient.Application="WDTST.EXE ( Plannisssimo )"

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
// Ben tans pis !
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
Membre enregistré
26 messages
Popularité : +1 (1 vote)
Posté le 12 août 2016 - 12:05
Merci Yann
Mais la fonction HSurAppelServeur(hMessage, "MessageClient") intercepte-t-elle vraiment le messages dans un service?

--
Bon Dev!
Posté le 12 août 2016 - 14:57
Bonjour

Si le service a accès à la base, oui...

Le problème dans les services est que les droits sont très différents de
la normale.

Essaye de faire tourner ton service sous un utilisateur normal et tu
verras la différence très vite


Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 8/12/2016 à 4:05 AM, Kanigi Yaya SORO a écrit :
Merci Yann
Mais la fonction HSurAppelServeur(hMessage, "MessageClient")
intercepte-t-elle vraiment le messages dans un service?

--
Bon Dev!