Fonction -> WaitForExit()

Résolu
kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009 - 26 déc. 2008 à 12:34
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre 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.
A voir également:

5 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 déc. 2008 à 15:32
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!
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 déc. 2008 à 14:37
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]
0
kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009
26 déc. 2008 à 14:55
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.
0
kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009
26 déc. 2008 à 16:41
ç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" .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 déc. 2008 à 18:16
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!
0
Rejoignez-nous