maintenance_info
Messages postés66Date d'inscriptionlundi 5 juin 2017StatutMembreDernière intervention 3 janvier 2022
-
9 juin 2021 à 10:31
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
10 juin 2021 à 06:31
Bonjour,
Suivie des winform ouvertes par les utilisateurs
j'ai une application Winform qui sera mis dans un dossier partagé sur réseau local et accessible par plusieurs utilisateurs.
mon objectif est de créer une interface de monitoring pour afficher la liste des utilisateurs qui exécutes l'application avec les nom des forms ouvertes.
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 10 juin 2021 à 06:31
Bonjour
je crois comprendre de ton explication qu'il ne s'agit pas d'une application client serveur, peux tu confirmer ou pas ce point?
Si tu utilises une base de données (j'espère que tu as bien géré les accès concurrents sinon ça va merder...), une solution est de créer un table dédiée où chaque form (une fois l'utilisateur loggué) inscrit une ligne au load et une autre au close. Ton appli de monitoring scruterait cette table en faisant une requête "qui est loaded et pas closed".
Attention, c'est pas la peine d'essayer ça avec un fichier texte, il n'y a pas de gestion d'accès concurrent.
Une autre option est de faire un petit bout de client serveur. Ton appli de monitoring tourne en permanence, l'autre s'y connecte en TCP et envoie au fur et à mesure les informations.
Là le hic, c'est que si ton appli de monitoring plante, ça risque de planter tout le monde.
Dans la même idée, "plus simple", moins de risque de tout planter, c'est que les applis envoie les infos à point réseau adresse UDP. Si ton appli de monitoring est au bout tant mieux, sinon l'info se perd. Par contre, au moment d'allumer ton moniteur, pour connaitre l'état actuel, il faudra que tu demandes à toutes les applis ouvertes de te faire un "rapport", par un message multicast par exemple.
Tu peux aussi essayer de jouer avec des pipes.
Y'a sûrement d'autres options, mais à cette heure là, je ne réfléchis pas beaucoup ;)