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 :

[VB6]pb de synchronisation


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut [VB6]pb de synchronisation
    Le titre est vague, je sais... mais je sais pas comment le synthetiser en qques mots.

    Dans mon appli, pour faire une sauvegarde, je doit stopper mon appli.
    donc je me retrouve a devoir fermer mon appli... Mais avant, je dois appeller un .exe

    Je fais donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Attend As Integer
    Attend = Shell(CurDir & "\SauvAuto.exe", vbNormalFocus)
    End
    Pis dans SauvAuto.exe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '-----ouvre le prog
    ShellExecute Me.hWnd, "open", CurDir & "\Liaison3.exe", vbNullString, CurDir & "\", SW_SHOWNORMAL
    '-----
     
    End
    Cependant, je crois qu'en fait l'appli fait:
    Liaison3(A)->Sauvegarde
    SauvAuto.exe
    Liaison3(B).exe
    SauvAuto.exe END
    Liaison3(A) END

    Pourquoi je pense que ca fait ca?
    Car Liaison3 utilise mon COM1, et quand le logiciel se relance apres la sauvegarde ( qui marche bien), il me dit que le port COM1 est utilisé :S

    Est ce que ma theorie est vraie?
    Ou c,est un autre probleme. ?

    Pour le resoudre, je fais un DoEvents lors de la Fermeture de Liaison3(A) et le lancement de SauvAuto ?
    Ou je fais ca a la goupille, et je desactive le COM 1 ??
    n'oubliez pas la balise

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    As-tu essayé avec DoEvents ? Je vois que tu pose la question.
    DoEvents paraît tout indiqué :
    Citation Envoyé par L'aide
    Arrête momentanément l'exécution afin que le système d'exploitation puisse traiter d'autres événements
    A+

  3. #3
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Doevents
    Attend = Shell(CurDir & "\SauvAuto.exe", vbNormalFocus)
    end
    Mais ca marche pas...

    mais attend...
    DoEvents arrete l'appli ?
    Donc si je la relance pas dans mon SauvAuto.exe ...

    me cours essayer ca... enfin, cour, c'est vite dit, il est deja devant le pc...
    n'oubliez pas la balise

  4. #4
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    Mouais, ca a l'air de marcher plutot bien ^^

    merci petit dodo
    n'oubliez pas la balise

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Faut le mettre après toute commande qui réclame une action au système, sauvegarde, cloture, ouverture de fichier, affichage... tsétesrats

    A+

  6. #6
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    heu... c'est ce que j'ai fais, je crois...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Doevents
    Attend = Shell(CurDir & "\SauvAuto.exe", vbNormalFocus)
    et dans SaveAuto.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    '-----ouvre le prog
    'ShellExecute Me.hWnd, "open", CurDir & "\Liaison3.exe", vbNullString, CurDir & "\", SW_SHOWNORMAL
    '-----
     
    End
    ca pose vraiment pas de pb ^^
    c'est cool
    n'oubliez pas la balise

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si ça marche, tant mieux mais le doevents serait plus à sa place APRÉS le Shell
    Mais tu fais comme tu veux

    A+

  8. #8
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    apres Oo

    Attend, ca veut dire qu'en fait, il lance le shell, et juste apres ( sans attendre la reponse du shell), il se met en pause jusqu'a ce que le shell se finisse ??
    n'oubliez pas la balise

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, c'est ce que je veux dire. L'exécution ne s'arrête pas d'elle-même, faut soit un msgbox, soit une tempo, soit, dans le cas qui nous occupe, un DoEvents pour qu'elle "freine"

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. vb6 synchronisation de flexgrids
    Par maxtin dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/02/2007, 22h16
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58

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