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

Delphi Discussion :

Détecter la fin de son processus


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Par défaut Détecter la fin de son processus
    Bonjours, j'aimerais savoir s'il est possible dans une application de detecter la fin de son processus/ou la fin d'execution de cette application?
    Si oui comment peut on faire?
    Merci

  2. #2
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut,

    Si c'est toi qui lance cette application tu peux utiliser "createprocess", avec un "waitforsingleobject" pour détecter la fin.

    @+.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Par défaut
    En fait j'ai une application que je fait tourner en tache de fond, elle est executer au démarrage de windows, et je voudrais savoir s'il est possible d'executer des actions avant la fin de cette application. C'est a dire qu'elle détecte elle meme sa propre fermeture?Existe-t-il un evenement windows a controler??
    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Par défaut
    En fait mon exe, se lance automatiquement a chaque démarrage de windows et en fait ce que j'aimeré c'est a partir de cette exécutable detecter l'evenement de fermeture de son processus puis faire mes actions avant la fin du processus.
    Merci

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    Ca dépend ce que tu veux faire mais tu peux peut-être regarder l'aide sur les sections initialization/finalization.

    Autrement dans le source de ton projet(dpr) tu peux appeler tes actions après l'application.run, par contre il ne faut pas que ce que tu appelles contiennes des composants de ton application, sinon ca risque de planter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
      MesActionsdeFermeture;
    end.

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Citation Envoyé par locs
    En fait mon exe, se lance automatiquement a chaque démarrage de windows et en fait ce que j'aimeré c'est a partir de cette exécutable detecter l'evenement de fermeture de son processus puis faire mes actions avant la fin du processus.
    Merci
    Normalement tu as l'évènement OnCloseQuery qui te permet de faire des actions avant la fermeture de celle-ci.
    Sinon il faut que tu interceptes le message windows qui donne l'ordre de fermeture à ton application.

    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
    21
    22
    23
    24
    25
     
     
    uses ...
     
    type 
      TfrmMain = class(TForm)
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
        procedure WMQueryEndSession(var Msg:TWMQueryEndSession); message WM_QUERYENDSESSION;
      end;
     
    var
      frmMain: TfrmMain;
     
    implementation
     
    procedure TfrmMain.WMQueryEndSession(var Msg: TWMQueryEndSession);
    begin
      // Ici tes actions à faire
      Msg.Result := 1; // si 1 on ferme l'application (voir aide pour les autres possibilité)
    end;
     
    end.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Par défaut
    Bonjour, je viens de regarder les fonction OnCloseQuery, et OnClose, mais je n'arrive pas a les utiliser dans mon programme!
    Quelqu'un pourrais me donner un exemple de syntaxe svp? je suis débutant en delphi!
    Merci

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Qu'est ce que tu veux faire dans le OnCloseQuery ou Onclose ?

    1- Sélectionner la form
    2- Aller dans ses évènements
    3- Double cliquer sur l'évènement OnCloseQuery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      case MessageDlg('Etes vous sûr de vouloir fermer l''application',mtConfirmation,[mbYes,mbNo],0) of
        mrYes : Canclose := True;
        mrNo : Canclose := False;
      end;
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. détecter la fin d'exécution d'un processus
    Par d_hazem dans le forum Général Java
    Réponses: 5
    Dernier message: 30/01/2009, 09h52
  2. Réponses: 7
    Dernier message: 18/07/2007, 16h40
  3. Réponses: 9
    Dernier message: 18/06/2007, 10h27
  4. attendre la fin d'un processus
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2004, 15h37
  5. Comment Attendre la fin d'un Processus
    Par mr_titi dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/06/2003, 16h35

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