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

C++ Discussion :

Quitter un processus depuis un autre proprement


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2007
    Messages : 53
    Points : 52
    Points
    52
    Par défaut Quitter un processus depuis un autre proprement
    Bonjour,

    Je dispose d'une application qui en supervise une autre. Lorsque le superviseur détecte un comportement anormal il doit tenter de fermer proprement celle-ci; en l'absence de réponse, il doit tuer le processus.
    Une fois l'application surveillée fermée (proprement ou brutalement) le superviseur doit la relancer.

    Je parviens à tuer l'application à l'aide de la fonction TerminateProcess par contre je ne connais pas la fonction permettant de demander à un processus de se terminer proprement (comme si l'on quittait l'application depuis la croix en haut à droite). Je suis certain qu'une telle fonction existe; je ne la connais simplement pas.

    Quelqu'un est-il en mesure de m'aiguiller ?
    mes premières recherches ont échouées.

    Toute aide est la bienvenue.
    Merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2007
    Messages : 53
    Points : 52
    Points
    52
    Par défaut Solution
    J'ai finalement trouvé une solution à mon problème sur ce forum.

    Voici étape par étape la solution que j'ai utilisé :

    Récupération du handle de l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HANDLE hwnd = FindWindow( 0 , "Nom de mon programme" );
    Première étape : on demande gentillement à l'application de se terminer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hwnd,WM_CLOSE,0,0);
    On surveille pendant au maximum 15s (ou une durée paramétrable).
    Si l'application n'est toujours pas fermée , on passe au niveau supérieur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hwnd,WM_QUIT,0,0);
    On laisse à nouveau un temps à l'application pour qu'elle mette fin à ses jours ...

    Si elle n'obéit toujours pas , on devient vraiment méchant
    [code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TerminateProcess(hwnd, -1);

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

Discussions similaires

  1. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 11h08
  2. Acces a un control depuis une autre classe
    Par schnito dans le forum MFC
    Réponses: 5
    Dernier message: 25/01/2004, 23h14
  3. [BPW]Dialogues non modaux exécutés depuis un autre dialogue
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 07/12/2003, 12h14
  4. Alimentation d'un SGBDR depuis un autre SGBR
    Par samyl dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 17/09/2003, 16h57
  5. Comment basculer le focus depuis une autre form ?
    Par altahir007 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 03/09/2003, 16h54

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