Commande shell ne s'exécute pas...

Résolu
jfuck Messages postés 59 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 31 mars 2009 - 9 janv. 2009 à 10:42
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 9 janv. 2009 à 19:10
Bonjour,

Voici ma situation et mon problème :

Pour imprimer un formulaire, je crée un fichier HTML (concaténation de chaines et de balises).
Ensuite j'imprime ce fichier grâce à une commande shell print.
Et ensuite je détruis ('kill') le fichier HTML pour qu'il ne reste pas de trace de ce fichier après l'impression.

Mon problème c'est que lorsque la commande "kill" succède la commande "shell",la commande shell ne fonctionne pas.
Par contre si je mets un msgbox entre le "shell" et le "kill" cela fonctionne, on dirait que c'est un problème de temps d'exécution de la commande "shell" (le kill supprimerait le fichier avant qu'il soit imprimé et donc il ne pourrait plus être imprimé ?)

Comment faire ? je ne vais pas mettre un msgbox uniquement pour gagner un temps minime

Merci pour votre aide
J.

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 janv. 2009 à 10:56
Salut
Comme tu l'as dit, suffit de metre une pause entre les deux.
Soit tu fais une boucle Do-Loop qui attend 2 ou 3 secondes, soit tu récupères l'identifiant du process lancé par le Shell et tu attends qu'il disparaisse.
Mais en .NET, je ne saurais comment le faire.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
jfuck Messages postés 59 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 31 mars 2009
9 janv. 2009 à 11:02
Merci pour ta réponse si rapide ,

j'ai mis une pause de 100 millisecondes (utilisation de l'api sleep), ca sera transparent à l'utilisation et ça fonctionne... attention a 80 millisecondes ca ne marche pas .
J'ai l'impression qu'a l'exécution c'est moins lourd que de récupérer l'identifiant du process et de faire des tests...

Par contre peut être que sur une machine plus lente cela posera des problèmes... donc je vais mettre 200 millisecondes par sécurité.

A+
J.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 janv. 2009 à 19:10
Pousse jusqu'à une seconde, l'utilisateur ne s'en apercevra pas et tu seras sûr que ça passera.
0
Rejoignez-nous