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

Discussion :

QProcess : fermer toutes les processus ouverts

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut QProcess : fermer toutes les processus ouverts
    Bonjour ,

    j'ai une application composé d'une classe principale MAINWINDOWS et d'une autre classe appelée FENETRE

    ma MAINWINDOWS appel ma classe FENETRE et dans cette classe on ouvre différent programme externe

    J'aimerais que lorsque l'on clique sur le bouton quitter de la MAINWINDOW tous les processus se ferment.

    j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void MainWindow::quitter(){
        qApp->quit();
     
        fen->process_Site->terminate(); // ça ne coupe pas le process 
    fen->process_Site->kill(); // ne fonctionne pas non plus
     }
    je lance mon process comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString chemin  = "C:/Notepad++/notepad++.exe";
    process_fen->startDetached(chemin);
    j'ai essayé avec la méthode start() mais ayant process_fen différents (en fonction de certaines boucles) ça ne fonctionne pas car je veux lancer plusieurs app externe , seul un process se lance mais quand j'appuie sur le bouton tout se ferme sauf l'appli externe. Alors que start est sur le même process que l"appli en elle même normalement ..

    J'ai pensé au PID mais je sais pas ..

    Merci par avance par l'aide , je suis un peu bloquée

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 141
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    J'imagine que la classe que vous utilisez pour lancer un nouveau processus permet aussi de l'arrêter.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut
    Bonjour ,

    non ce n'est pas cette classe qui l'arrête je veux que ce soit ma mainwindows qui l'arrête quand on clique sur quitter

    Dans ma classe fen j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     QList<Q_PID> listeProcess;
     
    inline QList<Q_PID> fen::get_ListeProcess_str(){
        return listeProcess;
    }
    inline void fen:: set_ListeProcess_str(QList<Q_PID> process){
        listeProcess = process;
    }
    dans mon fen.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      processstartDetached(nom
                //Q_PID* pid = process_Site->pid();
     
                listeProcess.append(process->pid());
    et dans ma mainwindows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void MainWindow::quitter(){
        QList<Q_PID> liste;
    liste = fen->get_ListeProcess_str();
    while(liste.count() != 0){
         QMessageBox::warning(this, "Fermeture application", "veuillez fermer toutes les fen");
    }    
      }
    mais ça ne fonctionne pas mon appli plante !
    merci par avance pour l'aide

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 141
    Billets dans le blog
    150
    Par défaut
    mais ça ne fonctionne pas mon appli plante !
    Utilisez le débogueur pour comprendre où et pourquoi.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut
    J'ai avancé !

    J'ai maintenant une liste de tous mes PID lancés , et j'arrive à récupérer tous les process qui tournent mais j'essaie de trouver leur PID et comparer si ça existe pour faire un kill de chaque mais je rame un petit peu ..
    j'aimerais bien un peu d'aide svp

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 141
    Billets dans le blog
    150
    Par défaut
    Comme votre programme connait les programmes que vous lancez, pas besoin d'avoir une liste de tous les PID du système. Juste, il suffit de récupérer le PID du programme que vous lancez. J'ose croire que QProcess est capable de le faire, si vous lancez vos programmes avec QProcess. Sinon, montrez nous comment vous lancez vos programmes.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Fermer une fenêtre et pas toutes les fenêtres ouvertes
    Par Sinakhine dans le forum Général Java
    Réponses: 4
    Dernier message: 29/10/2012, 13h06
  2. Fermer toutes les tables ouvertes
    Par jnmab dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/09/2010, 14h34
  3. Réponses: 3
    Dernier message: 26/05/2006, 17h35
  4. Fermer toutes les fenetres
    Par imeys dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 09/04/2006, 12h06
  5. [VB6] Quitter l'appli et fermer toutes les feuilles...
    Par The Bob dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 21h06

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