IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

comment savoir si mon application est ouverte sur un poste distant


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut comment savoir si mon application est ouverte sur un poste distant
    bonjour, j'ai installé mon application sur chaque poste client. De n'importe quel poste, je voudrais savoir si l'application est ouverte sur le poste P1.

    je dois situer l'objet de ma préoccupation.
    dans l'environnement Client/Serveur, je ne veux pas qu'un utilisateur ouvre une session sur le poste P0 et une autre sur le poste P1. si en ouvrant une session sur P0, l'application lui signale qu'il a déjà une session ouverte sur P1, comment peut-il le vérifier sans se déplacer.

    merci d'avance

  2. #2
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    Voici une que moi j'applique
    Chaque pc est installé le programme
    Sur le pc 1 c'est lui le serveur
    Les autres je fais... connecter un lecteur réseau, je pointe sur l'exe de pc 1 et ainsi de suite pour tout les pc du réseaux.
    Dans mon programme, j'ai mis tout simplement un fichier txt, avec inscription tout simplement 0
    Dans mon exemple, ici le but est d'empêcher d'autres pc utilisateur à encoder une commande dans la base access
    1ère étape, créer le fichier txt et dedans je mets 0
    2 ème étape lorsque que je veux encoder une commande, je vérifie si le fichier est bien à 0 par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim f As Integer
        Dim ligne As String
     
        f = FreeFile
        Open App.Path & "\Sécurité.txt" For Input As #f
                  Line Input #f, ligne        
        Close #f
    If ligne = "1" Then
    MsgBox "Programme de commande en cour !" & Chr(13) _
            & " Veuillez patienter..." _
            & " ou recommencer plus tard...", vbInformation, "Sécurité d'application"
     
    Exit Sub
    End If
    Lorsque j'ouvre mon formulaire commande je mets ceci(Load)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '===========================Ecriture dans le fichier  et bloque les autres poste...
    Dim f As Integer
        Dim FileName As String
        FileName = App.Path & "\Sécurité.txt"
        ' Obtention d'un numéro de fichier libre
        f = FreeFile
        ' Ouverture en mode écriture ("output")
        Open FileName For Output As #f
        ' Ecriture
            Print #f, "1"
            ' Fermeture du fichier
        Close #f
    Lorsque j'ai fini dans la fermeture du formulaire(Unload)je permets à d'autre poste de travailler!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '=============================Ecriture dans le fichier et permet de faire une commande
    Dim f As Integer
        Dim FileName As String
        FileName = App.Path & "\Sécurité.txt"
        ' Obtention d'un numéro de fichier libre
        f = FreeFile
        ' Ouverture en mode écriture ("output")
        Open FileName For Output As #f
        ' Ecriture
            Print #f, "0"
        ' Fermeture du fichier
        Close #f
    Voici une piste que j'ai appliqué, sans doute que d'autres sont plus fines et pointues...mais cela est le but du forum
    Juste a adapter dans votre but recherché?
    Bien à vous
    Vb

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    VB, je crois comprendre que quand l'application est lancée, les autres postes sont verrouilés.
    le principe de mon programme est le suivant:
    dans ma base de données,il y a une table des utilsateurs (matricule,nom et prénom utilisateur,nom utilisateur,mot de passe,connecté,nom du poste).la base de données est installée sur un serveur et l'application est installée sur les postes clients.chaque utilisateur ouvre une session de l'application avec un login.son statut "Connecté" devient "OUI" et le nom du poste s'ajoute dans la table.un utilisateur ne peut avoir sa session ouverte sur deux postes en même temps.
    c'est pourquoi je veux savoir si l'application est ouverte sur un autre poste

  4. #4
    vb
    vb est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par melancolie Voir le message
    VB, je crois comprendre que quand l'application est lancée, les autres postes sont verrouilés.
    le principe de mon programme est le suivant:
    dans ma base de données,il y a une table des utilsateurs (matricule,nom et prénom utilisateur,nom utilisateur,mot de passe,connecté,nom du poste).la base de données est installée sur un serveur et l'application est installée sur les postes clients.chaque utilisateur ouvre une session de l'application avec un login.son statut "Connecté" devient "OUI" et le nom du poste s'ajoute dans la table.un utilisateur ne peut avoir sa session ouverte sur deux postes en même temps.
    c'est pourquoi je veux savoir si l'application est ouverte sur un autre poste
    Et bien la réponse est dans ta question....a l'ouverture de l'application à l'aide d'un recordset , tu vérifies si ce nom n'est déjà pas dans ta table utilisateurs, si oui pas de permission d'ouvrir, en fait c'est le même principe que j'ai décris plus haut, mais ici l'info est dans une table !
    vb

  5. #5
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    merci VB. à la fermeture de l'application,la table est mise à jour.le champ "connecté" pour l'utilisateur se met à "NON" et le champ du nom du poste se vide.le hic, c'est qu'une interruption brusque de l'application peut faire que ma bd peut ne pas être à jour.il faut donc en ce moment que mon application vérifie si l'application est ouverte sur le poste indiqué.

  6. #6
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 092
    Points : 16 609
    Points
    16 609
    Par défaut
    Citation Envoyé par melancolie Voir le message
    merci VB
    ...........
    le hic, c'est qu'une interruption brusque de l'application peut faire que ma bd peut ne pas être à jour. il faut donc en ce moment que mon application vérifie si l'application est ouverte sur le poste indiqué.
    Si cela n'est pas dût à une coupure de courant, il est possible de prévoir les autres cas dans la procedure Form_QueryUnload suivant L'argument unloadmode
    Citation Envoyé par MSDN
    vbFormControlMenu 0 L'utilisateur a choisi dans le menu Système de la feuille la commande Fermeture.
    vbFormCode 1 L'instruction Unload est invoquée à partir du code.
    vbAppWindows 2 La session Microsoft Windows en cours prend fin.
    vbAppTaskManager 3 Le Gestionnaire de tâches de Microsoft Windows ferme l'application.
    vbFormMDIForm 4 Une feuille MDI fille se ferme en raison de la fermeture de la feuille MDI.
    vbFormOwner 5 Une feuille se ferme en raison de la fermeture de son propriétaire.

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    c'est déjà pensé. c'est surtout pour la coupure brusque d'électricité que je m'inquiète.

  8. #8
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 092
    Points : 16 609
    Points
    16 609
    Par défaut
    Salut

    A moins d'utiliser un onduleur .......
    Une stratégie peut être applicable malgré tous, vérifier si le flag de la BD signal qu'un poste est en cours d'utilisation pour le même nom de session utilisateur, vérifier que ce poste est bien "allumé".
    De plus,a chaque démarrage d'un poste (sur tous les postes) tu mes systématiquement le Flag de non occupation par ce poste avant même l'ouverture d'une session utilisateur de ton programme principal.
    Je me comprend, pas sûr par contre que j'ai sus m'expliquer

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    si je peux avoir un bout de code qui puisse m'aider, ce serait déjà un pas

  10. #10
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 092
    Points : 16 609
    Points
    16 609
    Par défaut
    Salut
    le 01/02/2011 11h40
    Citation Envoyé par melancolie
    à la fermeture de l'application,la table est mise à jour.le champ "connecté" pour l'utilisateur se met à "NON" et le champ du nom du poste se vide.
    Tu le fais dans ton programme principal au moment de la fermeture, il suffit de le faire aussi dans un programme annexe, que tu mes dans le dossier Démarrage de Windows.

  11. #11
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    merci
    je vais essayer de mettre ce que tu m'as dit en oeuvre et je t'en dirai des nouvelles

Discussions similaires

  1. Comment savoir si mon form est ouvert
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/12/2008, 12h17
  2. Réponses: 20
    Dernier message: 18/05/2008, 16h33
  3. Comment savoir si mon navigateur est ouvert ?
    Par Chris33 dans le forum Réseau/Web
    Réponses: 8
    Dernier message: 18/07/2006, 14h51
  4. Savoir si une application est ouverte sur un poste distant
    Par bl4ckwolf dans le forum Développement
    Réponses: 3
    Dernier message: 17/05/2006, 21h25
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo