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 :

Comment savoir si un process est en cours d'execution


Sujet :

Windows

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 47
    Points : 63
    Points
    63
    Par défaut Comment savoir si un process est en cours d'execution
    Bonjour,

    Voici ma situation. Un bouton me permet de lancer une application externe (notepad) avec createProcess afin de pouvoir gérer sa fermeture quand je le désire et empêcher le démarrage de plusieurs instance avec le même bouton. Seulement , si notepad est fermé manuellement, mon application a toujours un handle sur une process terminé.

    Je ne vois pas comment détecter dans mon application principale que NotePad a déjà été fermé afin de réinitialiser mon Handle.
    J'ai bien vu la faq win32 seulement , dans mon cas j'ai un handle mais qui n'est plus valable.


    Merci d'avance
    Lucien

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Un HANDLE vers un processus terminé est toujours valable tant que le handle lui-même n'a pas été fermé. WaitForSingleObject(hProcess, 0); permet de savoir si le processus tourne toujours (la fonction renverra WAIT_TIMEOUT) ou non (la fonction renverra WAIT_OBJECT_0).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    Merci pour la solution c'est exactement ce qu'il me fallait ! Par contre, j'ai pas mal de peine avec ces processus windows. Si quelqu'un connait un bon tuto je suis preneur. (La FAQ explique des points spécifiques mais ne permet pas de comprendre le mécanisme à mon avis.)

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

Discussions similaires

  1. Comment savoir si une application est en cours d'exécution
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 10h54
  2. Réponses: 4
    Dernier message: 16/07/2009, 16h25
  3. Réponses: 12
    Dernier message: 08/07/2008, 13h34
  4. Réponses: 2
    Dernier message: 03/11/2006, 10h36
  5. Comment savoir si un Thread est en cour dexecution?
    Par Soulama dans le forum Langage
    Réponses: 3
    Dernier message: 16/01/2006, 16h48

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