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

API, COM et SDKs Delphi Discussion :

[WIN32][D2005] Connaitre le status d'une autre application


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut [WIN32][D2005] Connaitre le status d'une autre application
    Bonjour, je débute en programmation sous delphi et malgré que ce soit un simple passe-temps entre deux créations de site internet, je commence à m'arracher les cheveux, héhéhéhé

    Bien, voici donc mon problème :

    Quand je clique sur le seul et unique bouton, qui est aussi le seul et unique élément de ma seule et unique form, mon code lance une application -externe- avec CreateProcess.

    Juque là, rien de bien méchant, on est d'accord... mais l'application externe, elle, elle fait un truc et puis dès qu'elle a fini, elle fait plus rien ! En gros, elle est IDLE, disons qu'elle a bossé durant 4 minutes 37 secondes (a modifier des fichiers sur le disque dur) et puis maintenant, elle fume une cigarette, en gros, plus rien... elle a fini son office mais elle ne se ferme pas toute seule !

    Le seule Hic, c'est qu'elle est toujours lancée (elle ne se termine pas une fois son travail fait, et je ne peux rien y changer, cette application n'est pas de moi). Le problème c'est que je voudrais qu'elle cède la place à une autre application du même type qui va elle aussi modifier des fichiers sur le disque dur.

    Mon problème n'est pas que cette application soit toujours lancée mais que tant qu'elle n'a pas fini de travailler (durant -disons- 4 minutes 37 secondes), je ne peux pas lancer l'autre application.

    Je voudrais donc savoir quand l'application externe est IDLE (en gros, qu'elle fait plus rien...) pour la tuer, et pouvoir lancer la deuxieme application externe. Sinon, je lance les deux applications en même temps, l'ordinateur rame, tout le monde est ennervé (j'abuse pas, nan nan) et au lieu de mettre 2x~5 minutes pour faire le job, faudra compter ~20 minutes! Exponentiellement parlant, ça devrait ~10 minutes mais c'est faux, j'ai essayé, faut au moins compter 17 minutes sur un Athlon XP 2800+ Barton avec disque IDE.

    Si au moins, le travail des applications -externes- avait une durée précise et constante à chaque utilisation (disons 5 minutes), je ferais un sleep et basta mais là, c'est pas possible !

    Donc en gros, comment savoir si une application externe, lancée avec CreateProcess est en train de se tourner les pouces après un job d'au moins 1 minutes. Peut-être en regardant son taux d'utilisation cpu mais comment faire, i don't know !

    Pour info, j'utilise Delphi 2005 edition personnelle... et là, je parle pour une application Delphi pour WIN32 (comme écrit dans le titre de la topic) mais je peux aussi bien travailler sur les autres possibilités offertes par Delphi 2005 (.NET, etc)... façon, j'y connais rien alors !

    Voilà, merci d'avoir lu mon roman... et j'attends vos réponses avec grande impatience, pour ceux qui veulent une dédicase, ça peut s'arranger

    Bonne journée,
    DaRiaN.

    Merci d'avance, sincèrement et désolé si j'ai fais une petite boulette.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut Le taux CPU, c'est pas terrible !
    Salut!

    Faut mieux éviter le taux CPU, j'ai essayé avec une fonction qui affiche le taux -global- et, en couplant avec quelques instruction (surtout celle qui dit que si le taux du CPU == 0 -> TerminateProcess mais bon, ça coupe l'application assez vite, sans qu'elle est pu finir ce qu'elle avait a faire... c'est pas terrible tout ça! En fait, je viens de me rendre compte que c'est le disque dur qui rame... mais niveau processeur, il en fou pas une. Donc peut-être allez voir du coté des E/S... alalala, y a pas à dire, quel passe-temps (je suis peut-être sadomaso, qui sait!).

    Merci d'avance de vos réponses (tardives?).

  3. #3
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Salut eponette,
    j'ai déjà utilisé ShellExecute mais je préfère CreateProcess, enfin là n'est pas la question... par contre, quel rapport avec mon problème ?

    A part si tu t'es trompé de lien, je ne vois pas vraiment le rapport...

    Je cherche un moyen de savoir quand une application externe, lancé avec shellexecute ou createprocess, est terminé dans le sens "qu'elle fait plus rien" et non terminé dans le sens "fermé".

    Voilà... bon, je vais faire un tour du coté des E/S.

    Merci pour ton aide et bonne journée.

  5. #5
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut
    OK, j'avais mal compris. Là je ne peux pas t'aider..

    Tu as essayé du côté des Thread?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut Nope, jamais avant le repas !
    Re-moi et Hello à tous,

    En effet, j'ai cherché à peu près toute les possibilités offertes par la F.A.Q de ce site et j'ai usé mes doigts a taper des recherches sur Google mais pour le moment je n'ai rien trouvé de satisfaisant.

    Je me suis fais une fausse joie avec :

    http://delphi.developpez.com/faq/?pa...tionencoursexe

    Mais bon, c'était pas encore ça !

    Allez, j'en ai fini pour aujourd'hui... j'y suis depuis 08:19, ce matin... 10 heure 30 minutes, ça me va

    Peut-être que demain, après une bonne nuit de sommeil et une infusion de science... qui sait ?

    Bonne soirée,
    DaRiaN.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Il faut peut être travailler sur la date de modif des fichiers.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut Thank you!
    Bonjour... je vais essayé ça, tout de suite! Je vous tiens au courant.

    Merci,
    DaRiaN.

  9. #9
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    en fait la vrai solution serait d'essayer de voir pourquoi cette application ne s'arrête pas. Est-ce son comportement 'normal' et en fait elle attend un evennement quelconque pour redémarrer ou est-ce du à quelqeus chose qui la met dans cet état ? Lorsque tu la lance manuellement, ell s'arrête toute seule ou pas ?

    @++
    Dany

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut Alalalalala...
    Bonjour à tous!

    Skywaukers, l'application a un comportement normal, a la fin, elle affiche le resultat, les temps passés, etc... et il n'y a pas de fonction : auto-close !

    Bon... ma question n'est pas résolue mais j'ai trouvé une alternative pour les application que j'utilise, je vérifie qu'un fichier qui existait avant le traitement, n'existe plus. Si c'est le cas, cela veut dire que l'application a terminé car elle supprime ce/ces fichier(s) qu'à la toute dernière seconde.

    Donc en gros, je ne pense pas que ça soit possible de savoir si une application utilise mémoire/cpu pour un traitement, ou qu'elle est IDLE. Le taux de cpu pour une application qui n'en utilise presque pas, descend souvent à 0, donc je couperai l'application bien trop tôt et a priori, le taux d'utilisation de mémoire ne grimpe pas. Faudrai voir du coté du taux d'utilisation des E/S du disque dur, mais pffff, c'est trop compliqué pour ce que je veux faire de cette application.

    Enfin c'est pas grave, merci de votre aide.

    Bonne journée,
    DaRiaN.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/02/2015, 10h03
  2. Réponses: 9
    Dernier message: 28/11/2011, 18h44
  3. Recupérer contenu controle actif d'une autre application win32
    Par frochard dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/08/2009, 20h33
  4. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  5. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32

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