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

Windows Discussion :

Synchronisation Win32


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 70
    Points : 49
    Points
    49
    Par défaut Synchronisation Win32
    Bonjour,

    Je cherche à synchroniser deux processus sous Windows.
    Le premier crée un process (client telnet) via CreateProcess() et j'aimerai qu'il se mette en attente de la fin de ce dernier.

    Pour cela j'utilise GetExitCodeProcess() afin de savoir quand le process telnet se termine car je boucle dessus.

    GetExitCodeProcess() retourne 1 (ERROR_INVALID_FUNCTION) alors que le process crée n'est pas terminer

    Si qq'un voit ce qu'il se passe ou si vous connaissez une méthode pour se synchroniser sur la fin d'un process je suis preneur

    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Plus simple, plus fiable et plus propre : WaitForSingleObject sur le handle renvoyé par CreateProcess.
    http://c.developpez.com/faq/vc/?page...cessWaitingEnd

  3. #3
    Membre averti Avatar de Jean-Philippe Shields
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2005
    Messages : 278
    Points : 330
    Points
    330
    Par défaut
    ouups, 2 mins trop tard, haha.

    reseigne-toi sur waitForSingleObject avec un parametre INFINITE comme dans cet exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    HANDLE hThread;
    DWORD dwGenericThread;
    hThread = CreateThread(NULL,0,SampleThread,NULL,0,&dwGenericThread);
    if(hThread == NULL)
    {
    
    DWORD dwError = GetLastError();
    cout<<"SCM&#58;Error in Creating thread"<<dwError<<endl ;
    return;
    
    &#125;
    
    hEvent = CreateEvent&#40;NULL,FALSE,FALSE,"Test"&#41;;
    
    cout<<"Started waiting for the thread to complete.."<<endl ;
    WaitForSingleObject&#40;hEvent,INFINITE&#41;;
    cout<<"Thread Completed."<<endl ;
    
    CloseHandle&#40;hEvent&#41;;
    pour obtenir hThread, tu dois utiliser le process_information que retourne createProcess

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Avant toute chose merci.
    Je vais regarder le code et posterai si j'ai des questions

    J'ai passé bcp de tps à chercher sur la msdn alors que la reponse est ds la FAQ.....

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Ca marche du feu de dieu merci

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

Discussions similaires

  1. Synchronisation Thread Win32
    Par 0x44-0x43-0x53-0x43 dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2009, 21h23
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. gcc et win32
    Par MatRem dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 16/01/2003, 12h22
  4. [API win32] Récupérer le répertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h38
  5. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

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