Fonction -> WaitForExit() [Résolu]

kerma26 37 Messages postés vendredi 11 mai 2007Date d'inscription 20 août 2009 Dernière intervention - 26 déc. 2008 à 12:34 - Dernière réponse : cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention
- 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 

5 réponses

Répondre au sujet
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 26 déc. 2008 à 15:32
+3
Utile
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!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Robert33
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 26 déc. 2008 à 14:37
0
Utile
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
kerma26 37 Messages postés vendredi 11 mai 2007Date d'inscription 20 août 2009 Dernière intervention - 26 déc. 2008 à 14:55
0
Utile
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
kerma26 37 Messages postés vendredi 11 mai 2007Date d'inscription 20 août 2009 Dernière intervention - 26 déc. 2008 à 16:41
0
Utile
ç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
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 26 déc. 2008 à 18:16
0
Utile
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.