Executer un batch tout les quart dheure avec ShellExecute - Programmation
Marsh Posté le 11-06-2002 à 10:55:01
visiblement tu exécute ton batch sous win 9x.
Il y a un bug sous win 9x pour fermer les batchs terminés.
La solution est de terminer le batch par les commandes :
@echo off
cls
n'ayant plus rien à afficher, la fenêtre se ferme. Etonnant non !
sous NT il faut terminer le batch par exit et là ça marche.
Si ton programme est susceptible de tourner sous les 2 Os, il faut tester sous lequel tu es en testant par exemple la présence d'une variable d'environnement qui n'existe pas sous Win 9x à la fin du batch :
if not exist %systemroot% goto win9x
exit
:win9x
echo off
cls
A+
Marsh Posté le 11-06-2002 à 11:02:41
ok merci c ool je suis sur Win9X, je vais tester ca de suite et te dirait si ca marche
Marsh Posté le 11-06-2002 à 12:21:09
okay c cool ca marche, ca me dépanne.
Mais si qqn sait faire autrement soit avec la commande ShellExecute, ca serait encore mieux.
Merci JPA
Marsh Posté le 11-06-2002 à 15:55:38
alalex a écrit a écrit : okay c cool ca marche, ca me dépanne. Mais si qqn sait faire autrement soit avec la commande ShellExecute, ca serait encore mieux. Merci JPA |
tu récupère l'ID de la fenêtre créé lorsque tu lance le batch, puis tu kill le process...
Marsh Posté le 11-06-2002 à 16:05:22
as tu un exemple, car je pensais faire ca au début, mais je ne sais pas comment kill un process.
Merci
Marsh Posté le 11-06-2002 à 16:10:05
alalex a écrit a écrit : as tu un exemple, car je pensais faire ca au début, mais je ne sais pas comment kill un process. Merci |
euh ... ben j'avais su ça en pascal (delphi), mais je l'ai plus du tout en tête, c'est une API avec Kill dedans je crois (logique !!)
++
Marsh Posté le 11-06-2002 à 16:10:55
ReplyMarsh Posté le 11-06-2002 à 16:11:32
alalex a écrit a écrit : okay merci je vais essayer de chercher |
t'as été rapide à répondre !
Marsh Posté le 11-06-2002 à 16:20:01
Reply
Marsh Posté le 11-06-2002 à 10:38:42
Bonjour, je dois réaliser ce thread, je lai fait, ca fonctionne, mais le problème c que le batch ne se ferme pas après éxécution donc il prend de la mémoire et au bout de 10 fenêtres ca plante, comment faire pour que la fenêtre se ferme après éxécution, sachant que je le lance en HIDE.
Ma commande :
iRet = (int)ShellExecute(NULL,"Open",acCommande,"-fast",acRep,SW_HIDE);
j'ai essayé avec la fonction système ca fonctionne, mais je peux pas le cacher avec HIDE
---------------
-= Team RC5-72 =- -= Team Dolphin Project =-