Fonction -> WaitForExit() [Résolu]

Messages postés
37
Date d'inscription
vendredi 11 mai 2007
Dernière intervention
20 août 2009
- - Dernière réponse : cs_Robert33
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
- 26 déc. 2008 à 18:16
Bonjour,

Bon ben j'ai cherché dans le forum, mais je n'ai pas trouvé mon bonheur. Mon problème c'est que je n'arrive pas à utiliser la fonction "WaitForExit()" de "System.Diagnostics.Process".
Voila mon code :

                    Process proc = new Process();
                    ProcessStartInfo startInfo = new ProcessStartInfo(fichiers[a]);
                    proc.StartInfo = startInfo;
                    proc.Start();
                    proc.WaitForExit(); <- l'erreur se produit ici !

Voila l'erreur :

Aucun processus n'est associé à cet objet.

Donc pour récapituler je lance un processus avec "proc.start()", mais je n'arrive pas à faire en sorte qu'on n'attende que se processus soit terminé avant de passer à la suite.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
3
Merci
Bonjour,
étrange cela devrait fonctionner, en tout cas le code suivant fonctionne parfaitement:

foreach (
string file
in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures),"*.jpg"))
{
  Process proc =
new Process();
  ProcessStartInfo startInfo =
new ProcessStartInfo(file);
  proc.StartInfo = startInfo;
  proc.Start();
  proc.WaitForExit();
}

Quelle application est associée à tes images ?

cela pourrait venir de là, car sans précision supplémentaire, le processus créé va lancer l'application associée au verbe "Open" associé à l'extention du fichier.
Tu peux peut être essayer de forcer l'application ?

ex :
ProcessStartInfo startInfo =
new ProcessStartInfo(@"C:\Program Files\Internet Explorer\iexplore.exe",file);

C# is amazing, enjoy it!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Robert33
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
0
Merci
Le process ne se lance pas... et dans ce cas, il faut voir du coté du ProcessStartInfo...

Es-tu sûr que le programme se lance vraiment ?

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
37
Date d'inscription
vendredi 11 mai 2007
Dernière intervention
20 août 2009
0
Merci
Si si le process se lance, je lance une image elle s'affiche bien, mais moi ce que je veux c'est en lancer plusieurs mais pas en même temps dès qu'on en ferme la prochaine se lance.
Commenter la réponse de kerma26
Messages postés
37
Date d'inscription
vendredi 11 mai 2007
Dernière intervention
20 août 2009
0
Merci
ça marche presque à 100%,

Merci Robert33 j'ai essayé ta première partie du code (le foreach) mais j'ai eu exactement la même erreur, par contre ensuite j'ai remplacé :
-> ProcessStartInfo startInfo =
new ProcessStartInfo(file);
par
->
ProcessStartInfo startInfo =
new ProcessStartInfo(@"C:\Program Files\Internet Explorer\iexplore.exe",file);

et là ça a marché, ça a donc bien ouvert mon image avec internet explorer puis ça a bien attendu que je ferme l'image avant d'afficher la suivante, donc maintenant pour que mon problème soit résolu à 100% il faudrait que je puisse l'ouvrir avec la visionneuse de windows.
J'ai fait quelques recherches rapides mais je n'ai pas trouvé ou se trouve le ".exe" qui lance cette visionneuse enfin si c'est bien un ".exe" .
Commenter la réponse de kerma26
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
0
Merci
Bonsoir,
Contents de t'avoir rendu service.

La visioneuse de Windows est une DLL 'shimgvw.dll'

Pour l'utiliser, essayes la commande suivante :
rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen CheminCompletDuFichier

Attention à la syntaxe, "ImageView_Fullscreen" est casse sensitif, et surtout ne pas mettre les guillemets pour l'emplacement du nom du fichier.

je n'ai pas essayé depui du code, mais àa devrait le faire.

A+
C# is amazing, enjoy it!
Commenter la réponse de cs_Robert33

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.