Progress bar et proccess .exe
Bonjour,
Je développe une interface dans laquelle j'appelle un logiciel de calcul qui est un .exe
Le temps d'exécution variant entre 1 et 3 minutes selon les données d'entrée, je cherche à afficher une progress bar à l'utilisateur pour qu'il sache que l'appli ne bug pas mais que l'exécution est assez long
Le problème est qu'en faisant une progress bar juste avec un timer qui s'active lorsque le proccess exe est lancé, puis s'arrête lorsque le proccess est terminé, je ne parvient pas à l'update. La progress bar ne réagit pas
J'ai également essayé avec un BackGroundWorker mais celui-ci se lance seulement une fois que le proccess est terminé
Voici le code que j'ai pour l'instant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
Private Sub Btn_hydro_Click(sender As Object, e As EventArgs) Handles btn_hydrolysys.Click
'Paramètres pour le processus
proc.StartInfo.WorkingDirectory = "C:\Users\Guigs\Test"
proc.StartInfo.FileName = "C:\Users\Guigs\Test1.exe"
proc.StartInfo.CreateNoWindow = True
Try
proc.Start()
While proc.HasExited = False
startBgw()
End While
proc.WaitForExit()
Catch ex As Exception 'si l'executable n'est pas lu
MessageBox.Show("the processus is already running or the executable is lacking")
End Try
End Sub
Private Sub startBgw()
bgw.WorkerReportsProgress = True
bgw.RunWorkerAsync()
End Sub
Sub bgw_DoWork(sender As Object, e As DoWorkEventArgs) Handles bgw.DoWork
For i As Integer = 0 To 10000
If i Mod 1000 Then
bgw.ReportProgress(i / 100)
End If
Next
End Sub
Sub bgw_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles bgw.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub |
Si quelqu'un a une idée comment je pourrais donc afficher une barre de progression pendant l'exécution du logiciel !
Merci par avance