[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é :twisted:
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.
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?).
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.