Utilisation de new process ?

Résolu
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010 - 10 janv. 2008 à 18:04
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 - 11 janv. 2008 à 14:25
Bonsoir,
j'ai une form avec un bouton qui lance un process (avant je passais par un shell mais c'est mieux pour avoir l'option "waitforexit")
dans ma form j'ai des labels dont je voudrais commencer par changer le contenu avant de lancer le nouveau process (toujours en cliquant sur le meme bouton donc)
mon probleme : j'ai je ne sais pas quoi dans mon code qui sempble me bouffer toutes les ressources et qui empeche le changement des labels
y a t-il une option que je devrais connaitre avec l'utilisation des process ?

voici ce que fait mon bouton : 

'je commence par vérifier si la copie des sources a aboutie
If
My.Computer.FileSystem.FileExists(
"C:\xxx") =
True
Then
PictureBox1.Show()

Me.Label2.Text =
"xxx"
Me.Label3.Text =
Nothing 

Dim proc
As System.Diagnostics.Process =
New System.Diagnostics.Process()
proc.EnableRaisingEvents =
True
proc.StartInfo.UseShellExecute =
True
proc.StartInfo.FileName =
"C:\xxx.exe"
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
proc.Start()
proc.WaitForExit()

End

IfMerci d'avance

8 réponses

Utilisateur anonyme
10 janv. 2008 à 18:12
Salut,

Fait un Update avec de lancer ton process.
TaForm.Update()

__________
  Kenji
3
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
10 janv. 2008 à 21:19
ok merci je vais essayer cela...

mais ce qui me surprend quand meme c'est que dès que je commente le code qui traite le process tout se passe bien.
meme si je met une pause de quelques secondes entre mes modifications de label et le debut du nouveau process,
l'affichage pédale dans la semoule (rien ne change quoi), et le process se declenche "normalement" 
je suis  
0
Utilisateur anonyme
10 janv. 2008 à 21:22
C'est normal, vu qu'il attend la fermeture du process (WaitForExit), donc, le code est figé et donc, plus rien ne va s'actualiser tant qu'il ne sera pas fermé.

__________
  Kenji
0
Utilisateur anonyme
10 janv. 2008 à 21:25
Autrement, tu peux faire un boucle qui boucle tant que proc.HasExited est à False. Et dans cette boucle, tu place un DoEvents pour laisser la main à l'affichage.

__________
  Kenji
0

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

Posez votre question
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
10 janv. 2008 à 21:29
je sais bien que je suis tres debutant, mais je ne comprend pas pourquoi "C'est normal, vu qu'il attend la fermeture du process (WaitForExit), donc, le code est figé et donc, plus rien ne va s'actualiser tant qu'il ne sera pas fermé"

 je pensais (betement peut-etre) que les lignes s'executaient" en se suivant et donc comme je declare mon process apres les modifs de labels...
0
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
11 janv. 2008 à 13:55
Bonjour

Autre solution, utiliser WaitForExit, mais dans un Thread.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
11 janv. 2008 à 14:13
"utiliser WaitForExit, mais dans un Thread." c'est à dire stp ? je vois pas comment... merci

sinon le MaForm.update a bien résolu la prise en compte de la modification des labels,  (moi content)
0
NHenry Messages postés 15144 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 24 juillet 2024 159
11 janv. 2008 à 14:25
Bonjour

Thread : http://fr.wikipedia.org/wiki/Thread
En utilisant la classe : System.Threading.Thread (Voir l'aide MSDN pour plus d'info).

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous