Lancer un exécutable sur le serveur, à partir des raccourcis situés sur les postes client, revient à une multi-instance sur le serveur.
Dans cas, pas d'identification des postes clients.
C'est à vous de gérer l'identification par programmation.
Créer un fichier des utilisateurs (postes) exemple FUSER avec au moins :
- champ "Poste" en tant que clé unique
- champ "Mot passe"
Créer un fichier des connexions, exemple FCONEX, avec au moins un champ "Poste" en tant que clé unique
mettre en place la gestion des postes (fenêtre, création, modification, ...), genre groupware mais simple
à l'ouverture de la fenêtre principale, les options du menu sont invisibles.
l'option du menu "ouvrir fenêtre d'identification utilisateur" est visible, également l'option "gestion utilisateur"
accessible uniquement pour l'administrateur
soit la fenêtre d'identification de l'utilisateur s'ouvre automatiquement, soit à la demande clic sur l'option du menu concernée
alors sélection login + mot de passe correct + validation :
- les options du menu principal deviennent visibles (GR_Menu..Visible=Vrai)
- gsXPoste = contenu du login
- rechercher gsXPoste, dans le fichier des connexions "FCONEX", rubrique FCONEX.POSTE
si pas trouvé alors ajouter gsXPoste dans le fichier FCONEX
Bloquer l'enregistrement HBloqueNumEnr(FCONEX, hNumEnrEnCours, hBlocageEcriture)
Option : liste des postes connectés
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Ajouter systématiquement le poste gsXPoste (utilisateur en cours),
//dans la liste des postes connectés
//Passer en revue toutes les lignes du fichier des connexions (FCONEX)
// Tester
SI FCONEX.POSTE est différent de gnXPoste Alors
SI blocage de l'enregistrement en cours = Vrai alors
// l'utilisateur n'est pas connecté
Débloquer l'enregistrement en cours
SINON
// l'utilisateur est connecté
Ajouter le poste en cours, dans la liste des postes connectés
FIN
FIN |
Remarque
Dans le code du projet, mettre ceci :
1 2 3 4 5
|
gsXPoste est une chaine
//Pour une gestion personnalisée des blocage et éviter l'ouverture fenêtre windev erreur :
HSurErreur("*",hErrBlocage,"ErreurBlocage") |
Créer une procédure globale
1 2 3
|
PROCEDURE ErreurBlocage()
RENVOYER opAnnuler |
Partager